On Tue, 13 Apr 2010 08:56:03 -0400, Steven Schveighoffer <schvei...@yahoo.com> wrote:

If you don't use reserve, here is what happens during the loop:

1st append: The smallest block possible to hold 1 double is found and allocated 2nd append: If the block holding the first double can hold 2, the "allocated" size of the block is increased to 2 doubles. Otherwise, the smallest block possible to hold 2 doubles is found and allocated.
...


Assuming you may ask questions about this, it's not an exact description of what happens. The append code and GC are smarter about it than this, I just wanted to explain it in an easy-to-understand way :) The real code uses algorithms to determine optimal grow sizes and can extend into consecutive blocks if possible.

-Steve

Reply via email to