Garbage Collector
bearophile
bearophileHUGS at lycos.com
Sat Dec 1 05:02:52 PST 2012
thedeemon:
> Your program should get quadratically slower.
> If you just allocate in a loop, GC is called O(n) times and
> each time it scans all the heap, each scan is O(n), so you get
> O(n^2) overall time.
This was a very well know problem with the simple GC of CPython,
so about two or three years ago they have added an optimization:
if the GC finds many nearby allocations, it switches off, to go
back to a more linear run-time.
I vaguely remember someone talking about a similar optimization
in the D GC, but even if it's there, it's not working well enough.
Bye,
bearophile
More information about the Digitalmars-d
mailing list