This section provides a list of benchmark test methods for 'float' operations that can be called by my BenchmarkRunner.java program.
After finishing performance testing on "int" and "long" operations,
I want to look at "float" and "double" operations.
Here are my test methods for "float" operations ready to be called by my BenchmarkRunner.java program:
/**
* BenchmarkTestFloat.java
* Copyright (c) 2010 by Dr. Herong Yang, herongyang.com
*/
class BenchmarkTestFloat {
// The empty loop benchmark test method
public static float emptyLoop(int steps, BenchmarkRunner runner) {
float x = 0;
float i = 0;
float last = steps;
runner.startTimer();
for (i=0; i<last; i+=1) {
}
runner.stopTimer();
x = i;
return x;
}
// Test method for an assignment operation in a loop
public static float assignment(int steps, BenchmarkRunner runner) {
float x = 0;
float i = 0;
float last = steps;
runner.startTimer();
for (i=0; i<last; i+=1) {
x = i;
}
runner.stopTimer();
return x;
}
// Test method for an add operation in a loop
public static float add(int steps, BenchmarkRunner runner) {
float x = 0;
float i = 0;
float last = steps;
runner.startTimer();
for (i=0; i<last; i+=1) {
x = i + i;
}
runner.stopTimer();
return x;
}
// Test method for a multiply operation in a loop
public static float multiply(int steps, BenchmarkRunner runner) {
float x = 0;
float i = 0;
float last = steps;
runner.startTimer();
for (i=0; i<last; i+=1) {
x = i * 3;
}
runner.stopTimer();
return x;
}
// Test method for a division operation in a loop
public static float division(int steps, BenchmarkRunner runner) {
float x = 0;
float i = 0;
float last = steps;
runner.startTimer();
for (i=0; i<last; i+=1) {
x = i / 3;
}
runner.stopTimer();
return x;
}
}
Note that:
I used "float" data type for the loop index variable and all other variables.
I did not include any test method for the shift operation.