From: Marcin Raczkowski Date: 2008-01-11T15:56:05+09:00 Subject: Re: Manual Memory Management Kurt Stephens wrote: > Marcin Raczkowski wrote: >> Kurt Stephens: >> I actually did some tests with naive implementation of Boehem, mayby >> I'll be able to help. >> > > How far did you get? > Not very far really I'm afraid, I choose subset of Ruby, and started testing how would it work if I exchange some calls in ruby GC code - I think that aproach was wrong now, and hacking it would require more complex knowlage and planing. >> Problem with copying collectors is that they make pages dirty really >> quick - so you loose COW advantage (that happens with curent mark-sweep >> implementation to see >> http://izumi.plan99.net/blog/index.php/category/ruby/) > > Any allocator that uses next/prev pointers in allocation headers will > cause dirty pages as soon as objects are moved to free lists. Since ruby > uses mailoc() underneath this is pretty much guaranteed. :) Izumi tried to change this he also provided some good guides in english for ruby GC. > >> About reference counting collectors - It was an idea - I guess >> implementation would have to be really good - advantage of ruby is that >> you won't segfault ;) >> >> > > Reference counting will require major changes to all extensions and > internals. Rather than added ref count dec/inc operations, we might > want to invest that effort crafting a good write barrier and do > generational GC. Sure, as i said it was an idea, I have finals comming soon, but I'm willing to help when they finish. greets Marcin Raczkowski