Measuring JVM performance

It was a “JVM performance week” in JRuby-land. It all started when some recent code changes is JRuby caused an interesting performance degradation with JDK6 on multi-core CPUs. See the original post to the [jvm-l] list and extended coverage of what happened on Charlie’s blog. So, while following the discussion and participating, I learned a few new things and got some interesting additional info and links that I’d like to share:

  1. Let’s start with basics. John Rose posted a good starting guide for those who’d like to micro-benchmark things on JVM: So You Want to Write a Micro-Benchmark.
  2. Performance techniques used in the Hotspot JVM wiki entry with the list of optimizations JVM does, sweet and to the point.
  3. Fundamental work by Ulrich Drepper: What Every Programmer Should Know About Memory, a MUST read, but painful :)
  4. Deep dive into assembly code from Java blog post by Kohsuke Kawaguchi, on how to print out the assembly code that JIT is producing.
  5. Examining generated code with OpenJDK 7, exciting stuff!
  6. Polymorphism Performance Mysteries Explained, the Issue #158 of The Java Specialists’ Newsletter.
  7. How fast is Java Volatile? or Atomic? or Synchronized?, with nice charts and comparisons.
  8. Escape analysis can help optimize synchronization by Brian Goetz.

Enjoy!

3 Responses to “Measuring JVM performance”

  1. links for 2008-04-07 | manicwave.com Says:

    [...] Measuring JVM performance - The Empty Way (tags: java performance jvm jruby) [...]

  2. Kirill Shirokov Says:

    Russian readers might also enjoy an article written by the Russian Hotspot QE group:

    http://blogs.sun.com/vmrobot/entry/microbenchmarking_hotspot

  3. Vladimir Sizikov Says:

    Kirill, thanks, very useful indeed. :)

Leave a Reply