4 ms·
> Do you know why these implementations opt for 2 if it's not the best choice? Probably a mix of simplicity, not knowing or not caring. Most software is not op
by threeducks 2y ago
> Do you know why these implementations opt for 2 if it's not the best choice?
Probably a mix of simplicity, not knowing or not caring. Most software is not optimal.
> If it's not the best, what is?
In theory, the best value is a bit less than the golden ratio, so 1.5 is quite good.
https://archive.li/Z2R8w#selection-119.7-135.119 https://archive.li/Z2R8w#selection-119.7-135.119
In practice, unknown factors can influence the result, so it is best to benchmark your code and try a bunch of values until you find the fastest configuration.
- dzaima 2y agoThat theoretical result of the golden ratio is completely entirely useless for any practical scenario, and, even for its extremely-contrived scenario where the only allocations ever happening are from a single array being expanded, and using an extremely dumb allocator, it's just optimizing memory usage, not performance. Amusingly, it looks at Java, which typically uses pointer bumping for the allocator and can do compacting GC, making the argument entirely meaningless.
- gpderetta 2y agoIIRC libstdc++ benchmarked the golden ratio and found it worse for the loads they were interested in, so they stuck with a growth factor of 2.