From: Sylvain Joyeux Date: 2007-10-02T16:20:07+09:00 Subject: Re: gc.c -- possible logic error? > Would you mind pointing me at your "object allocation > tracking" patch"? It is simply tracking the count of objects on the heap which are allocated. No tracking of freed objects. ruby-prof has a support for the patched ruby, so you get a profiling tool for object allocation (you want to check some patches I submitted to fix the latest ruby-prof as well though) http://rubyforge.org/tracker/?func=detail&aid=11497&group_id=426&atid=1700 > Could you tell me more about your fixed-size heap > allocation scheme? Well, seeing you're at MBARI, I think we have the same kind of applications ... The main problem I am trying to address with the fixed-size allocation scheme is the GC time: I'm more concerned about latency than speed, and GC is really a great latency hog. I have no great results so far: it reduces the GC time 10% but GC is called more often. I did not have time to profile garbage_collect since I wrote the thing, so I cannot improve it for now. The idea behind the fixed-size allocation scheme is to have small, fixed-size heaps (8192 objects for now). I was wondering wether or not it would gain because the probability of a freed heap would be greater. Since there is more heaps, I had to tweak the heap allocation so that is_pointer_to_heap remains fast: it is called often during GC... Sylvain