Experience with non-Sun/Oracle JVMs?
Aside from Websphere, the Sun/Oracle JVM seems to be near-ubiquitous. Do people have much experience of other JVM 开发者_如何学Pythonimplementations, such as that in OpenJDK or IBM's JVM?
Any pitfalls? Performance differences? Bugs?
I have used IBMs, it comes with WebSphere and works well. I have also used IBMs in the past (1.1), it used to be faster than Sun's. If you use Weblogic, you are using JRockit, which is also fast. There really is no difference that can be perceived.
For performance you would need to benchmark your app for the different JVMs. You can probably get better performance differences by running your code through a profiler.
I remember using the Microsoft JVM back in the days of Java 1.1. Trying to debug it in the Visual Studio of the day was a CPU crippling nightmare. Now that I have got that off my chest lets never talk about it again.
I've used the IBM JDK and JRE for two reasons. It's the one that drives all the IBM products (Websphere, Rational,et al) and the mainframe connectivity is so much better.
Other than that, I used to use the non-Sun JVM under Ubuntu at home but I've started using Sun's (or Oracle's now, I guess) for that now.
Personally (and this is opinion only), I'd prefer to use Sun's for stand-alone stuff. For stuff like Websphere, it's probably best to use the one that's delivered as part of the product.
The OpenJDK is the same code-base as the Sun/Oracle JDK (you might get slight differences in terms of release versions). The main difference is that the Sun JDK/JRE comes with fonts that are not bundled with the OpenJDK (probably because of the font licences).
I also did some benchmarks a while back for an application between the Sun JVM and the IBM JVM (1.4): the IBM JVM seemed to have a more aggressive method-inlining strategy, which gave it better performance results for this particular application (essentially, a relatively short computation in a loop over an array). As always, this type of results has to be taken with caution, since it will depend on the application.
精彩评论