JM> Should we just make sure that we turn off GC when doing something like JM> above? One GC idea I thought of is this: What if you could tell the GC to disable itself until a certain amount of memory was in use? Something like: GC.diable_until(50M) # diable GC until our process is 50megs in size. I don't know if such a thing is possible without polling. That is, can the OS send a message to ruby when it hits 50 megs? This would be useful because many times you will have a program that doesn't usually use up much memory, but every once in a while it does, and you want to deal with it at that time, but otherwise: full speed ahead and damn the torpedos, I've got 50 megs of RAM in my back pocket! These aren't academic questions, I work for a registrar: Tucows/OpenSRS and deal with 30 million records pretty often, while maybe it's a small number compared to some of you, performance is still a significant factor when dealing with that number. For instance http://www.domainsurfer.com/ssearch.cgi?dom=ruby which I wrote a couple years ago (in perl) has to do a subsecond substring search against 30mm records. Of course there is quite a bit of preprocessing that goes on, but that has to happen in a reasonable amount of time. And OpenSRS itself deals with very high transaction rates, again, I'd love it if OpenSRS was powered by ruby. I would like to convert DomainSurfer to ruby (and paste a "powered by ruby" logo on the page), and get the rest of the Tucows development team on ruby, I'm just running into the performance niglets here and there. thanks, -joe -- NewsHub: http://www.NewsHub.com/tech/ | OpenSRS: http://www.OpenSRS.org/ | Explore Your Net! DomainSurfer: http://www.DomainSurfer.com/ |