We also beg to differ. Due to gc our realtime framerates look more like an EKG readout of a marathon runner (non deterministic to say the least) than the EKG of a dead guy (very very deterministic).
We prefer the dead guy (deterministic). We are porting a product from C++ to java and our current solution is to create variable pools so as not to thrash the heap. We do systems with thousands of dynamic 3D objects running at 60Hz, so we think the pools make sense for performance.