JVM Tutorials - Herong's Tutorial Examples
Dr. Herong Yang, Version 4.10

"double" Operations without JIT Compilation

This section provides performance test results of 'double' operations without JIT compilation - interpreted-only mode.

Let's start with the interpreted-only mode on "double" operations using these parameters to control my tests:

  • "-Xint" JVM option to stop JIT compilations and keep my test in interpreted-only mode.
  • "-Xms100m -Xmx100m" JVM options to allocate enough memory to avoid GC.
  • "warmups=10000" benchmark runner parameter to ensure the JVM is warm enough to be stable.
  • "runs=100" benchmark runner parameter to repeat the test 100 times to average out interruptions from the operating system.
  • "steps=1000000" benchmark runner parameters to minimize the loop overhead.

Here are test results:

C:\herong\jvm>java -Xms100m -Xmx100m -Xint
   BenchmarkRunner BenchmarkTestFloat emptyLoop 10000 100 1000000
...
Runs: 100, Ave: 32, Min: 32, Max: 33 - Per step in nanoseconds

C:\herong\jvm>java -Xms100m -Xmx100m -Xint
   BenchmarkRunner BenchmarkTestFloat assignment 10000 100 1000000
...
Runs: 100, Ave: 39, Min: 39, Max: 40 - Per step in nanoseconds

C:\herong\jvm>java -Xms100m -Xmx100m -Xint
   BenchmarkRunner BenchmarkTestFloat add 10000 100 1000000
...
Runs: 100, Ave: 63, Min: 62, Max: 66 - Per step in nanoseconds

C:\herong\jvm>java -Xms100m -Xmx100m -Xint
   BenchmarkRunner BenchmarkTestFloat multiply 10000 100 1000000
...
Runs: 100, Ave: 57, Min: 57, Max: 61 - Per step in nanoseconds

C:\herong\jvm>java -Xms100m -Xmx100m -Xint
   BenchmarkRunner BenchmarkTestFloat division 10000 100 1000000
...
Runs: 100, Ave: 70, Min: 70, Max: 72 - Per step in nanoseconds

Surprisingly, the multiply loop runs faster than the add loop!

Last update: 2010.

Table of Contents

 About This Book

 Download and Install Java SE 1.6 Update 2

 java.lang.Runtime Class - The JVM Instance

 java.lang.System Class - The Operating System

 ClassLoader Class - Class Loaders

 Class Class - Class Reflections

 Sun's JVM - Java HotSpot VM

 JRockit JVM 7.0 by BEA Systems

 JRockit JVM 8.0 by BEA Systems

 Memory Management Rules and Tests

 Garbage Collection Tests

 Stack Overflow Tests

 Thread Testing Program and Result

 StringBuffer Testing Program and Result

 CDS (Class Data Sharing)

 Micro Benchmark Runner and JVM Options

 Micro Benchmark Tests on "int" Operations

 Micro Benchmark Tests on "long" Operations

 Micro Benchmark Tests in JIT Compilation Mode

Micro Benchmark Tests on "float" and "double" Operations

 Benchmark Test Methods for "float" Operation

 "float" Operations without JIT Compilation

 "float" Operations with JIT Compilation

 Benchmark Test Methods for "double" Operation

"double" Operations without JIT Compilation

 "double" Operations with JIT Compilation

 Performance Improvements of JIT Compilation

 References

 PDF Printing Version

Dr. Herong Yang, updated in 2010
"double" Operations without JIT Compilation