Friday, May 20, 2011

VM memory management update

As some of you know, I've been working on VisualWorks' memory policies and garbage collectors for a while. I gave a talk on the subject at Smalltalks 2010 (see here), and I was quite happy to report significant performance improvements: faster allocation, faster code execution, and faster (e.g.: 2.5x) real applications.

For the next release (after VW 7.8), I added a time-constrained, self-adjusting IGC mechanism to the memory policies. Also, I added the possibility to turn off the IGC on demand, which is useful for performance considerations. And now, I have a working prototype for a more efficient GC. For example, in a reasonably configured image with about 30mb of perm space and 100mb of old space, the new GC runs 35% faster. Although the new code has not gone through all the testing necessary for a GC yet, the 35% performance improvement should hold barring major surprises. There are a few things to do that should help edge case performance further.

Moving along...

No comments: