bearophile wrote:
Jeremie Pelletier:

I forked the original D1 gc and rewrote it almost entirely. I made numerous speed 
improvements over it, such as greatly reducing the number of pool lookups, smarter 
alloc/realloc algorithms, removed the 'freebits' and 'scan' bitfields from pools 
and rewrote the garbage collector to only use the 'mark' one, I also merged the 
sweep and freelist rebuild phases together to save on the overhead of yet another 
loop over the entire working set, also added support for the gc to free memory 
pools if they're entirely free.<

That looks like lot of work. Too bad we don't have a suite of GC-heavy 
benchmarks to test it. (Maybe Lucarella has collected something in the 
meantime).

Bye,
bearophile

I couldn't agree more about the need for a GC benchmark suite, writing this module involved some of the hardest debugging work I ever did, even with printfs, memory dumps and windbg.

I do believe it to be stable enough for general usage in its current state. Its been some time now since I last had any issues with it.

If you come across such a benchmark suite, let me know, I would love to see how it performs against druntime's GC.

Jeremie

Reply via email to