JVM Tutorials - Herong's Tutorial Examples - Version 4.23, by Dr. Herong Yang
"long" Add and Assignment: 34 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 34 nanoseconds per step.
The next test is to measure the add operation performance. Here is the test method:
/** * BenchmarkTestLong.java * Copyright (c) 2010, HerongYang.com, All Rights Reserved. */ class BenchmarkTestLong { ... // Test method for an add operation in a loop public static long add(int steps, BenchmarkRunner runner) { long x = 0; long i = 0; long 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 BanchmarkTestLong add 10000 100 10 ... Runs: 100, Ave: 269, Min: 224, Max: 279 - Per step in nanoseconds C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner BanchmarkTestLong add 10000 100 100 ... Runs: 100, Ave: 57, Min: 53, Max: 59 - Per step in nanoseconds C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner BanchmarkTestLong add 10000 100 1000 ... Runs: 100, Ave: 36, Min: 36, Max: 36 - Per step in nanoseconds C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner BanchmarkTestLong add 10000 100 10000 ... Runs: 100, Ave: 34, Min: 34, Max: 35 - Per step in nanoseconds C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner BanchmarkTestLong add 10000 100 100000 ... Runs: 100, Ave: 34, Min: 34, Max: 34 - Per step in nanoseconds C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner BanchmarkTestLong add 10000 100 1000000 ... Runs: 100, Ave: 34, Min: 34, Max: 35 - 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
►Micro Benchmark Tests on "long" Operations
"long" Empty Loop: 25 Nanoseconds per Step
"long" Assignment Only: 24 Nanoseconds per Step
"long" Shift and Assignment: 30 Nanoseconds per Step
►"long" Add and Assignment: 34 Nanoseconds per Step
"long" Multiply and Assignment: 38 Nanoseconds per Step
"long" Division and Assignment: 53 Nanoseconds per Step
Performance Comparisons between "int" and "long"
Micro Benchmark Tests in JIT Compilation Mode