No announcement yet.

[SOLVED] Relative JVM Performance - Sun vs. JRockit

This topic is closed.
  • Time
  • Show
Clear All
new posts

  • [SOLVED] Relative JVM Performance - Sun vs. JRockit


    I've been doing some informal Java benchmarking on our new Dell server, to prepare for some upcoming projects. It may have some relevance here, since a great deal of OTM's performance is dependent upon the underlying JVM. However, since you essentially void your support by using non-standard JVMs, this is really just an academic exercise. Here's some brief details:

    Dell PowerEdge 2950
    2 x Intel 5160 Xeon CPUs (each dual-core 3.0GHz w/ 4MB cache)
    8GB RAM (667MHz)
    CentOS 4.4 x86-64 with 2.6.9-42.0.3.ELsmp kernel
    VolanoMark (Volano: The Volano Report & Benchmark Tests) I chose VolanoMark because it is a relatively simple, highly threaded Java benchmark and it always a good indicator relative to the OTM performance tests I ran at G-Log.
    Java Command Lines:
    • Sun: -server -Xms1024m -Xmx1024m -verbose:gc
    • JRockit: -jrockit -Xms1024m -Xmx1024m -Xgcprio:throughput -Xverbose:memory
    Run benchmark 3 times for each tested JVM results are the average of the three runs. Baseline performance is represented by the Sun 1.3.1_19 JDK and is for reference only.
    Picture 1.jpg

    (Note: [32] and [64] indicate 32-bit and 64-bit versions, respectively.)
    I'll keep this brief - as I'm sure you can draw your own conclusions, however, here are a few points that I found interesting:
    1. Java's performance has increased significantly since the 1.3.1 JDK (JRockit is twice as fast as Sun 1.3.1!) - most likely due to threading improvements, garbage collection and nio (non-blocking IO).
    2. JRockit remains significantly faster than the Sun JVM - however, Sun has been closing the gap rapidly. Performance of 1.6.0 is hard to determine, since Sun just released the initial version and JRockit is still in the preview (beta) stage.
    3. You incur a performance penalty by using the 64-bit versions, though it is minimal with JRockit. This is likely because JRockit detects whether the heap size is 32-bit addressable. If so, it uses a 32-bit heap and compresses references.
    4. There will be a slight performance boost when OTM is able to support the 1.5.0 version of Java. However, most clients would benefit from support for 64-bit JVMs, as it would allow them to utilize larger heaps and avoid running memory-starved during large bulkplans and periods of high integration throughput.
    While I used to do benchmarking all the time, I've grown a bit rusty - so feel free to discuss or refute my results

    Hope this helps!

    Chris Plough

  • #2
    Re: [SOLVED] Relative JVM Performance - Sun vs. JRockit

    Just a quick note - I just wrote up a tutorial installing, configuring and running VolanoMark that may be helpful:

    Benchmarking Java JVM Performance with VolanoMark - Oracle OTM / G-Log GC3 Community Support

    Chris Plough