"int" Division and Assignment: 19 Nanoseconds per Step

This section provides a tutorial example on how to perform benchmark tests to find out how long a division and assignment loop will take to run. The answer is 19 nanoseconds per step.

The next test is to measure the division operation performance. Here is the test method:

```/**
* BenchmarkTestInt.java
*/
class BenchmarkTestInt {
...
// Test method for a division operation in a loop
public static int division(int steps, BenchmarkRunner runner) {
int x = 0;
int i = 0;
int last = steps;
runner.startTimer();
for (i=0; i<last; i++) {
x = i/3;
}
runner.stopTimer();
return x;
}
}
```

Here are test results:

```C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner
BanchmarkTestInt division 10000 100 10
...
Runs: 100, Ave: 251, Min: 224, Max: 252 - Per step in nanoseconds

C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner
BanchmarkTestInt division 10000 100 100
...
Runs: 100, Ave: 41, Min: 39, Max: 42 - Per step in nanoseconds

C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner
BanchmarkTestInt division 10000 100 1000
...
Runs: 100, Ave: 20, Min: 19, Max: 20 - Per step in nanoseconds

C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner
BanchmarkTestInt division 10000 100 10000
...
Runs: 100, Ave: 17, Min: 17, Max: 18 - Per step in nanoseconds

C:\herong\jvm>java -Xint -Xms100m -Xmx100m BenchmarkRunner
BanchmarkTestInt division 10000 100 100000
...
Runs: 100, Ave: 18, Min: 18, Max: 18 - Per step in nanoseconds

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

Conclusions based on the test result:

• The loop runs 19 nanoseconds per step with a division operation and an assignment operation.
• The execution time of a division operation, i/3, is about 5 nanoseconds in interpreted-only mode. This conclusion can be arrived from test results of 10000, 100000 and 1000000 steps and minus the assignment loop execution time: 19 - 14 = 5 nanoseconds.

Last update: 2010.