One item that, uh, confused me:<p>&#62; <i>First, we noticed that a large fraction of the [GC] pause time was spent calling free to reclaim the unused memory.</i><p>How about actually implementing a garbage collector? You know, the kind that doesn't have to go around freeing memory?<p>(I'm being somewhat facetious, as retrofitting a precise compacting GC into a codebase not set up for it isn't trivial, but it is the right direction to move in if you actually want decent GC performance.)