You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2006/11/22 16:08:52 UTC

svn commit: r478184 - in /harmony/enhanced/drlvm/trunk/src/test/microbenchmark: ./ harmony-2223/ harmony-2223/test_longmuldiv_speed.java harmony-2247/ harmony-2247/ArraycopyTest.java

Author: varlax
Date: Wed Nov 22 07:08:51 2006
New Revision: 478184

URL: http://svn.apache.org/viewvc?view=rev&rev=478184
Log:
Store microbenchmarks from JIRAs, just in case.

Added:
    harmony/enhanced/drlvm/trunk/src/test/microbenchmark/
    harmony/enhanced/drlvm/trunk/src/test/microbenchmark/harmony-2223/
    harmony/enhanced/drlvm/trunk/src/test/microbenchmark/harmony-2223/test_longmuldiv_speed.java
    harmony/enhanced/drlvm/trunk/src/test/microbenchmark/harmony-2247/
    harmony/enhanced/drlvm/trunk/src/test/microbenchmark/harmony-2247/ArraycopyTest.java

Added: harmony/enhanced/drlvm/trunk/src/test/microbenchmark/harmony-2223/test_longmuldiv_speed.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/src/test/microbenchmark/harmony-2223/test_longmuldiv_speed.java?view=auto&rev=478184
==============================================================================
--- harmony/enhanced/drlvm/trunk/src/test/microbenchmark/harmony-2223/test_longmuldiv_speed.java (added)
+++ harmony/enhanced/drlvm/trunk/src/test/microbenchmark/harmony-2223/test_longmuldiv_speed.java Wed Nov 22 07:08:51 2006
@@ -0,0 +1,51 @@
+import java.util.*;
+
+/**
+ * Microbenchmark on  64bit multiplications, division and remainder.
+ */
+public class test_longmuldiv_speed {
+    public static void main(String[] args) {
+        //
+        // warm-up - force the method to be recompiled
+        //
+        System.out.println("Warming up ...");
+        for (int i=0; i<20000; i++) {
+            test(false);
+        }
+        //
+        // The real measure
+        //
+    System.out.println("Measuring ...");
+        long startTime = System.currentTimeMillis();
+        test(true);
+        long endTime = System.currentTimeMillis();
+        //
+        //
+        long spentTime = endTime - startTime;
+        System.out.println("... done.");
+        System.out.println("The test took: "+spentTime+"ms");
+    }
+
+    static void test(boolean do_test) {
+        int problem_size = do_test ? 10000000 : 5;
+        int array_size = 300000;
+        long[] array = new long[array_size];
+        Random rndValue = new Random(0);
+
+        for (int i=0; i<problem_size; i++) {
+            int index = i % array.length;
+            long v1 = rndValue.nextLong();
+            long v2 = rndValue.nextLong();
+            int what = (rndValue.nextInt() % 3);
+            if (what == 0) {
+                array[index] = v1*v2;
+            }
+            else if (what == 1) {
+                array[index] = v1/v2;
+            }
+            else {
+                array[index] = v1%v2;
+            }
+        }
+    }
+}
\ No newline at end of file

Added: harmony/enhanced/drlvm/trunk/src/test/microbenchmark/harmony-2247/ArraycopyTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/src/test/microbenchmark/harmony-2247/ArraycopyTest.java?view=auto&rev=478184
==============================================================================
--- harmony/enhanced/drlvm/trunk/src/test/microbenchmark/harmony-2247/ArraycopyTest.java (added)
+++ harmony/enhanced/drlvm/trunk/src/test/microbenchmark/harmony-2247/ArraycopyTest.java Wed Nov 22 07:08:51 2006
@@ -0,0 +1,153 @@
+/**
+ * Microbenchmark for System.arraycopy.
+ * Should be run with -Xms1048M -Xmx1048M options.
+ */
+class ArraycopyTest {
+
+    public static int length = 100000000;
+
+    public static void main(String[] args) {
+
+        int arrA[] = new int[length];
+        int arrB[] = new int[length];
+
+        for (int i=0;i<length;i++) {
+            arrA[i] = i;
+        }
+// this part is for debugging
+/*
+        printArr(arrA,0,10, "arrA initial");
+        printArr(arrB,0,10, "arrB initial");
+        
+        System.arraycopy(arrA,1,arrB,3,5);
+        printArr(arrB,0,10, "arrB changed");
+        
+        System.arraycopy(arrB,3,arrB,8,5);
+        printArr(arrB,0,10, "arrB self forward");
+        
+        System.arraycopy(arrB,4,arrB,0,3);
+        printArr(arrB,0,10, "arrB self backward");
+*/        
+        System.out.println("");
+        System.out.println("START!");
+
+        long start = System.currentTimeMillis();
+
+        System.arraycopy(arrA,1,arrB,0,length-1);
+        System.arraycopy(arrA,1,arrB,0,length-1);
+        System.arraycopy(arrA,1,arrB,0,length-1);
+        System.out.print(". ");
+        System.arraycopy(arrA,2,arrB,0,length-2);
+        System.arraycopy(arrA,2,arrB,0,length-2);
+        System.arraycopy(arrA,2,arrB,0,length-2);
+        System.out.print(". ");
+        System.arraycopy(arrA,3,arrB,0,length-3);
+        System.arraycopy(arrA,3,arrB,0,length-3);
+        System.arraycopy(arrA,3,arrB,0,length-3);
+        System.out.print(". ");
+        System.arraycopy(arrA,4,arrB,0,length-4);
+        System.arraycopy(arrA,4,arrB,0,length-4);
+        System.arraycopy(arrA,4,arrB,0,length-4);
+        System.out.print(". ");
+        System.arraycopy(arrA,5,arrB,0,length-5);
+        System.arraycopy(arrA,5,arrB,0,length-5);
+        System.arraycopy(arrA,5,arrB,0,length-5);
+        System.out.print(". ");
+        System.arraycopy(arrA,6,arrB,0,length-6);
+        System.arraycopy(arrA,6,arrB,0,length-6);
+        System.arraycopy(arrA,6,arrB,0,length-6);
+        System.out.print(". ");
+        System.arraycopy(arrA,7,arrB,0,length-7);
+        System.arraycopy(arrA,7,arrB,0,length-7);
+        System.arraycopy(arrA,7,arrB,0,length-7);
+        System.out.print(". ");
+        System.arraycopy(arrA,2,arrB,0,length-2);
+        System.arraycopy(arrA,2,arrB,0,length-2);
+        System.arraycopy(arrA,2,arrB,0,length-2);
+        System.out.print(". ");
+        System.arraycopy(arrA,3,arrB,0,length-3);
+        System.arraycopy(arrA,3,arrB,0,length-3);
+        System.arraycopy(arrA,3,arrB,0,length-3);
+        System.out.print(". ");
+        System.arraycopy(arrA,4,arrB,0,length-4);
+        System.arraycopy(arrA,4,arrB,0,length-4);
+        System.arraycopy(arrA,4,arrB,0,length-4);
+        System.out.print(". ");
+        System.arraycopy(arrA,5,arrB,0,length-5);
+        System.arraycopy(arrA,5,arrB,0,length-5);
+        System.arraycopy(arrA,5,arrB,0,length-5);
+        System.out.print(". ");
+        System.arraycopy(arrA,6,arrB,0,length-6);
+        System.arraycopy(arrA,6,arrB,0,length-6);
+        System.arraycopy(arrA,6,arrB,0,length-6);
+        System.out.print(". ");
+        System.arraycopy(arrA,7,arrB,0,length-7);
+        System.arraycopy(arrA,7,arrB,0,length-7);
+        System.arraycopy(arrA,7,arrB,0,length-7);
+        System.out.print(". ");
+        System.arraycopy(arrA,2,arrB,0,length-2);
+        System.arraycopy(arrA,2,arrB,0,length-2);
+        System.arraycopy(arrA,2,arrB,0,length-2);
+        System.out.print(". ");
+        System.arraycopy(arrA,3,arrB,0,length-3);
+        System.arraycopy(arrA,3,arrB,0,length-3);
+        System.arraycopy(arrA,3,arrB,0,length-3);
+        System.out.print(". ");
+        System.arraycopy(arrA,4,arrB,0,length-4);
+        System.arraycopy(arrA,4,arrB,0,length-4);
+        System.arraycopy(arrA,4,arrB,0,length-4);
+        System.out.print(". ");
+        System.arraycopy(arrA,5,arrB,0,length-5);
+        System.arraycopy(arrA,5,arrB,0,length-5);
+        System.arraycopy(arrA,5,arrB,0,length-5);
+        System.out.print(". ");
+        System.arraycopy(arrA,6,arrB,0,length-6);
+        System.arraycopy(arrA,6,arrB,0,length-6);
+        System.arraycopy(arrA,6,arrB,0,length-6);
+        System.out.print(". ");
+        System.arraycopy(arrA,7,arrB,0,length-7);
+        System.arraycopy(arrA,7,arrB,0,length-7);
+        System.arraycopy(arrA,7,arrB,0,length-7);
+        System.out.print(". ");
+        System.arraycopy(arrA,2,arrB,0,length-2);
+        System.arraycopy(arrA,2,arrB,0,length-2);
+        System.arraycopy(arrA,2,arrB,0,length-2);
+        System.out.print(". ");
+        System.arraycopy(arrA,3,arrB,0,length-3);
+        System.arraycopy(arrA,3,arrB,0,length-3);
+        System.arraycopy(arrA,3,arrB,0,length-3);
+        System.out.print(". ");
+        System.arraycopy(arrA,4,arrB,0,length-4);
+        System.arraycopy(arrA,4,arrB,0,length-4);
+        System.arraycopy(arrA,4,arrB,0,length-4);
+        System.out.print(". ");
+        System.arraycopy(arrA,5,arrB,0,length-5);
+        System.arraycopy(arrA,5,arrB,0,length-5);
+        System.arraycopy(arrA,5,arrB,0,length-5);
+        System.out.print(". ");
+        System.arraycopy(arrA,6,arrB,0,length-6);
+        System.arraycopy(arrA,6,arrB,0,length-6);
+        System.arraycopy(arrA,6,arrB,0,length-6);
+        System.out.println(". ");
+        System.arraycopy(arrA,7,arrB,0,length-7);
+        System.arraycopy(arrA,7,arrB,0,length-7);
+        System.arraycopy(arrA,7,arrB,0,length-7);
+
+        long end = System.currentTimeMillis();
+
+        System.out.println("FINISHED");
+
+        System.out.println("duration = "+(end - start)+" millis");
+
+    }
+
+    public static void printArr(int[] arr, int pos, int count, String prefix) {
+
+        String out = prefix + " : ";
+        for(int i=pos;i < pos+count; i++) {
+            out = out + arr[i] + " ";
+        }
+        System.out.println(out);
+    }
+}
+