import java.util.Random; public class Test { private static final int NUMBER_OF_ITERATIONS = 90000000; private static final int NUMBER_OF_TEST_EXECUTIONS = 50; static double multiply_by_power_of_ten(final double d, final int exponent) { switch (exponent) { case 0: return d; case 1: return d * 10; case 2: return d * 100; case 3: return d * 1000; case 4: return d * 10000; case 5: return d * 100000; case 6: return d * 1000000; case 7: return d * 10000000; case 8: return d * 100000000; case 9: return d * 1000000000; case 10: return d * 10000000000L; case 11: return d * 100000000000L; case 12: return d * 1000000000000L; case 13: return d * 10000000000000L; case 14: return d * 100000000000000L; case 15: return d * 1000000000000000L; case 16: return d * 10000000000000000L; default: return 0.0; } } public static void main(String[] argv) { double dead = 0.0; long overall_time = 0; System.out.println("Collecting random values.."); int[] random_values = new int[NUMBER_OF_ITERATIONS]; Random rand = new Random(); for (int i = 0; i < NUMBER_OF_ITERATIONS; ++i) { random_values[i] = rand.nextInt(17); } System.out.println("Running tests.."); for (int i = 0; i <= NUMBER_OF_TEST_EXECUTIONS; ++i) { long start_time = System.nanoTime(); for (int j = 0; j < NUMBER_OF_ITERATIONS; ++j) { dead = multiply_by_power_of_ten(10.0, random_values[j]); } long end_time = System.nanoTime(); long test_time = end_time - start_time; System.out.print("[" + i + "]: " + test_time); if (i == 0) { System.out.println(" (ignored)"); } else { overall_time += test_time; System.out.println(""); } } System.out.println("Test completed. Mean is: " + overall_time / NUMBER_OF_TEST_EXECUTIONS); System.out.println("(Ignore value " + dead + ")"); } }