Monday, October 10, 2005

Stack based allocation in Java 6

While Java 5 gives boost to performance in some extent, we may forsee to see more with compiler optimization in the upcoming Mustang Java 6. One of the remarkable change is the long-awaiting feature: Escape analysis which makes memory management in Java more intelligent. It's not new concept. In fact, it has been presented in some non-Sun high performance Java implementation such as Excelsior. See Compiler-cooperative memory management.

To have more details, search Java stack base allocation in Google. You eventually end up finding all objects are heap based and no stack based. In Mustang 6, this would be changed. To know why it's important, compare and contrast heap base and stack based object allocation and with Java's garbage collection algorithm.

Well. to test it in Mustang Java 6. Try:
Download debug binary and compile with
# java -server -XX:+PrintOptoAssembly -XX:+PrintIdeal -XX:+DoEscapeAnalysis -XX:+PrintEscapeAnalysis

Java theory and practice: Urban performance legends, revisited

No comments: