View Single Post
  #1 (permalink)  
Old December 23rd, 2006, 23:11
chrisplough's Avatar
chrisplough chrisplough is offline
Site Moderator
 
Join Date: Jun 2006
Location: West Chester, PA
Posts: 863
Blog Entries: 7
Groans: 0
Groaned at 1 Time in 1 Post
Thanks: 55
Thanked 213 Times in 126 Posts
Rep Power: 10
chrisplough has a spectacular aura aboutchrisplough has a spectacular aura aboutchrisplough has a spectacular aura about
Send a message via AIM to chrisplough
[SOLVED] Relative JVM Performance - Sun vs. JRockit

Hello!

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:

Platform:
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
Benchmark:
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
Methodology:
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.
Results:
Picture 1.jpg

(Note: [32] and [64] indicate 32-bit and 64-bit versions, respectively.)
Conclusion:
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
__________________
Chris Plough
MavenWire

www.MavenWire.com
The Following User Says Thank You to chrisplough For This Useful Post:
james_foran (July 30th, 2008)