I’m a bit confused. From what I remember, escape analysis was supposed to automagically solve many of our temporary small object woes (as per http://www.ibm.com/developerworks/java/library/j-jtp09275.html) in the Java 6 release. But I’m not seeing the improvements. I’m working on JBox2d (a physics engine: http://www.jbox2d.org), and we are overwhelmingly bottlenecked by Vec2 creation costs, which was one of the things I was under the impression escape analysis would fix, as these objects are extremely short lived, mainly just used for shuffling pairs of numbers from place to place. Frankly, things seem to be performing just about the same as in 1.5. There still seems to be almost a 2:1 performance difference when I fully inline temp vector creations in realistic benchmarks.
What’s going on here? Was escape analysis cut from the JVM, or am I misinterpreting what it should be doing for me? I’m quite happy to inline all that stuff by hand if need be, or reuse a few static vectors, but that IBM article seemed to strongly advise against that type of stuff (the author all but implied that anyone that would consider it is a freaking idiot).