package benchmark; import com.sun.cldchi.jvm.JVM; class Arithmetic { public static void f(int a) {} public static void f(int a, int b) {} public static void f(int a, int b, int c) {} public static void f(long a) {} public static void f(long a, long b) {} public static void f(long a, long b, long c) {} public static void f(float a) {} public static void f(float a, float b) {} public static void f(float a, float b, float c) {} public static void f(double a) {} public static void f(double a, double b) {} public static void f(double a, double b, double c) {} public static void main(String[] args) { int i = 0; long l = 0; float f = 123; double d = 0; long start = JVM.monotonicTimeMillis(); for (int k = 0; k < 1000000; k++) { i += 1; i >>= 2; i <<= 3; i &= 4; i |= 5; } System.out.println("int: " + (JVM.monotonicTimeMillis() - start)); start = JVM.monotonicTimeMillis(); for (int k = 0; k < 1000000; k++) { l += 1; l >>= 2; l <<= 3; l &= 4; l |= 5; } System.out.println("long: " + (JVM.monotonicTimeMillis() - start)); start = JVM.monotonicTimeMillis(); for (int k = 0; k < 1000000; k++) { f += 1; f -= 1; f *= 1; f /= 1; f %= 1; f = -f; f = f < f ? f : f; } System.out.println("float: " + (JVM.monotonicTimeMillis() - start)); start = JVM.monotonicTimeMillis(); for (int k = 0; k < 1000000; k++) { d += 1; d -= 1; d *= 1; d /= 1; d %= 1; d = -d; d = d < d ? d : d; } System.out.println("double: " + (JVM.monotonicTimeMillis() - start)); start = JVM.monotonicTimeMillis(); } }