How Appender calculate cash size?

Suliman via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Sep 6 12:00:02 PDT 2017


If I right understand Appender and ~ have buffers to minimize 
allocations.
"Appender's local capacity storage will give you a pretty big 
boost" (с) Adam

"Appender maintains its own array metadata locally, so it can 
avoid global locking for each append where capacity is non-zero." 
(с) Docs

So if I right understand appender reserve more to prevent 
unneeded allocations.

It's seems that here is calculation new size 
https://github.com/dlang/phobos/blob/master/std/array.d#L3163

So it's allocate more memory that needed, but I can't understand 
it's algorithm. Who could explain how it's work on low level?

How it's make decision how much memory needed to be pre-allocated 
to minimize allocations?


More information about the Digitalmars-d-learn mailing list