AOT and JVM
There have been a few AOT compilers for Java for some time. Two of the better known examples are GCJ and Excelsior JET. Even though Excelsior JET also has a JIT, the main focus was on the AOT aspect....
View ArticleLocal variables scope in HotSpot
Assume the following code: public void foo() { C c = new C(); bar(c.baz); // assume that baz does not reference c } I was under the impression that HotSpot would not garbage collect c before the local...
View Article32-bit or 64-bit JVM? How about a Hybrid?
Before x86-64 came along, the decision on whether to use 32-bit or 64-bit mode for architectures that supported both was relatively simple: use 64-bit mode if the application requires the larger...
View ArticleJDK6u12, Java 7 and Devoxx
With JavaFX 1.0 out of the way, it seems like the Java 7 train has started moving again. Concurrency plans posted by Doug Lea. Two points of interest are that the parallel collections API is probably...
View ArticleObjects with no allocation overhead
We have all heard about how HotSpot is really good at dealing with short-lived objects (both allocation and GC), but the truth is that object allocation is still pretty costly when compared to...
View ArticleLoad unsigned and better Compressed Oops
The HotSpot engineers are constantly working on improving performance. I noticed two interesting commits recently: Vladimir Kozlov improved Compressed Oops so that it doesn’t need to do...
View ArticleNew JVM options and Scala iteration performance
Internal iterators like foreach tend to do very well in micro-benchmarks on the JVM. In fact, they often do as well as the equivalent manual while or for loop. There is a catch, however, and it’s easy...
View ArticlePerformance of FastMath from Commons Math
Commons Math includes (in trunk and MATH_2_X branch) a FastMath class that is described as a “Faster, more accurate, portable alternative to StrictMath” and is implemented fully in Java (unlike...
View Article