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