Home | History | Annotate | Download | only in src
      1 // Copyright 2007 The Android Open Source Project
      2 
      3 /**
      4  * Array write speed test.
      5  */
      6 public class Main {
      7     /** whether to report times */
      8     static boolean timing = false;
      9 
     10     static final int STORAGE_SIZE = 128*1024;
     11     static int[] mStorage = new int[STORAGE_SIZE];
     12 
     13     static public void report(long start, long end) {
     14         if (! timing) {
     15             return;
     16         }
     17 
     18         System.out.println("Finished in " + ((end - start) / 1000000.0)
     19             + " msec");
     20     }
     21 
     22     static void writeArray(int val) {
     23         for (int i = STORAGE_SIZE-1; i >= 0; i--)
     24             mStorage[i] = val;
     25     }
     26 
     27     static void writeTest() {
     28         long start, end;
     29 
     30         writeArray(0);  // touch all the memory
     31 
     32         System.out.println("Running writeTest...");
     33         start = System.nanoTime();
     34         for (int i = 1; i < 20; i++)
     35             writeArray(i);
     36         end = System.nanoTime();
     37 
     38         report(start, end);
     39     }
     40 
     41     static void copyTest() {
     42         long start, end;
     43 
     44         // touch once
     45         System.arraycopy(mStorage, 0, mStorage,
     46             STORAGE_SIZE/2, STORAGE_SIZE/2);
     47 
     48         System.out.println("Running copyTest...");
     49         start = System.nanoTime();
     50         for (int i = 1; i < 35; i++) {
     51             System.arraycopy(mStorage, 0, mStorage,
     52                 STORAGE_SIZE/2, STORAGE_SIZE/2);
     53         }
     54         end = System.nanoTime();
     55 
     56         report(start, end);
     57     }
     58 
     59     public static void main(String[] args) {
     60         if ((args.length >= 1) && args[0].equals("--timing")) {
     61             timing = true;
     62         }
     63 
     64         writeTest();
     65         copyTest();
     66         System.out.println("Done!");
     67     }
     68 }
     69