[ruby-core:70766] [Ruby trunk - Feature #6047] read_all: Grow buffer exponentially in generic case

From: zzak@...
Date: 2015-09-13 03:19:23 UTC
List: ruby-core #70766
Issue #6047 has been updated by Zachary Scott.

Assignee changed from Martin Bosslet to openssl

----------------------------------------
Feature #6047: read_all: Grow buffer exponentially in generic case
https://bugs.ruby-lang.org/issues/6047#change-54145

* Author: Martin Bosslet
* Status: Assigned
* Priority: Normal
* Assignee: openssl
----------------------------------------
In the general case, read_all grows its buffer linearly by just the amount that is currently read from the underlying source. This results in a linear number of reallocs, It might turn out beneficial if the buffer were grown exponentially by multiplying with a constant factor (e.g. 1.5 or 2), thus resulting in only a logarithmic numver of reallocs.

I will provide a patch and benchmarks, but I'm already opening this issue so I won't forget.

See also https://bugs.ruby-lang.org/issues/5353 for more details.



-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next