Marco Cantù is unstoppable. I can't keep up LOL
Marco Cantù is unstoppable. I can't keep up LOL
http://blog.marcocantu.com/blog/2018-delphi-rtl-improvements-rio.html
http://blog.marcocantu.com/blog/2018-delphi-rtl-improvements-rio.html
http://blog.marcocantu.com/blog/2018-delphi-rtl-improvements-rio.html
http://blog.marcocantu.com/blog/2018-delphi-rtl-improvements-rio.html
I recently experimented with different grow factors and while the memory fragmentation can only mitigated for medium and large blocks (where it actually matters imo) it might be beneficial to only grow by 1.5 at that point. But that has yet to be tested.
ReplyDeleteWhat I liked so far is the grow strategy that Go uses (2x until 1024, 1.25x after that) - see https://golang.org/src/runtime/slice.go#L115
Since you usually set the size upfront if you add many elements at once (well, if you know how many beforehand) the grow strategy only matters in the long run. You want to balance speed (too many realloc might slow things down unnecessarily), memory overhead (if you are overallocating much you risk wasting too much memory) and memory fragmentation (which might happen with a grow factor bigger than the golden ratio)
I'm wondering why use zlib 1.2.8 when 1.2.11 is available since January 15, 2017? zlib.net - zlib Home Site
ReplyDeleteAt end there is 1.2.11
ReplyDelete