JVM Tutorials - Herong's Tutorial Examples - Version 4.23, by Dr. Herong Yang
"int" Add and Assignment: 17 Nanoseconds per Step
This section provides a tutorial example on how to perform benchmark tests to find out how long an add and assignment loop will take to run. The answer is 17 nanoseconds per step.
The next test is to measure the add operation performance. Here is the test method:
/** * BenchmarkTestInt.java * Copyright (c) 2010, HerongYang.com, All Rights Reserved. */ class BenchmarkTestInt { ... // Test method for an add operation in a loop public static int add(int steps, BenchmarkRunner runner) { int x = 0; int i = 0; int last = steps; runner.startTimer(); for (i=0; i<last; i++) { x = i+i; } runner.stopTimer(); return x; } }
Here are test results:
C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner BanchmarkTestInt add 10000 100 10 ... Runs: 100, Ave: 251, Min: 223, Max: 252 - Per step in nanoseconds C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner BanchmarkTestInt add 10000 100 100 ... Runs: 100, Ave: 42, Min: 39, Max: 42 - Per step in nanoseconds C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner BanchmarkTestInt add 10000 100 1000 ... Runs: 100, Ave: 19, Min: 19, Max: 19 - Per step in nanoseconds C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner BanchmarkTestInt add 10000 100 10000 ... Runs: 100, Ave: 17, Min: 17, Max: 17 - Per step in nanoseconds C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner BanchmarkTestInt add 10000 100 100000 ... Runs: 100, Ave: 17, Min: 17, Max: 17 - Per step in nanoseconds C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner BanchmarkTestInt add 10000 100 1000000 ... Runs: 100, Ave: 17, Min: 17, Max: 17 - Per step in nanoseconds
Conclusions based on the test result:
Last update: 2010.
Table of Contents
Downloading and Installing JDK 1.8.0 on Windows
Downloading and Installing JDK 1.7.0 on Windows
java.lang.Runtime Class - The JVM Instance
java.lang.System Class - The Operating System
ClassLoader Class - Class Loaders
Class Class - Class Reflections
JRockit JVM 28.2.7 by Oracle Corporation
Memory Management and Garbage Collectors
JVM Stack, Frame and Stack Overflow
Thread Testing Program and Result
CPU Impact of Multi-Thread Applications
I/O Impact of Multi-Thread Applications
Micro Benchmark Runner and JVM Options
►Micro Benchmark Tests on "int" Operations
Hardware, OS and JVM Configurations
"int" Empty Loop: 16 Nanoseconds per Step
"int" Assignment Only: 14 Nanoseconds per Step
"int" Shift and Assignment: 17 Nanoseconds per Step
►"int" Add and Assignment: 17 Nanoseconds per Step
"int" Multiply and Assignment: 17 Nanoseconds per Step
"int" Division and Assignment: 19 Nanoseconds per Step
Micro Benchmark Tests on "long" Operations
Micro Benchmark Tests in JIT Compilation Mode