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

"double" Operations with JIT Compilation

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

Let's continue with the JIT compilation mode on "double" operations using these parameters to control my tests:

  • "-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
   BenchmarkRunner BenchmarkTestDouble emptyLoop 10000 100 1000000
...
Runs: 100, Ave: 2, Min: 2, Max: 2 - Per step in nanoseconds

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

C:\herong\jvm>java -Xms100m -Xmx100m
   BenchmarkRunner BenchmarkTestDouble add 10000 100 1000000
...
Runs: 100, Ave: 2, Min: 2, Max: 2 - Per step in nanoseconds

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

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

Surprisingly, the assignment with add loop runs faster than the assignment-only 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 with JIT Compilation