misc cleanup
[nestedvm.git] / src / tests / SpeedTest.java
index 5362961..35941c1 100644 (file)
@@ -1,7 +1,9 @@
 package tests;
 
-import org.xwt.mips.Runtime;
-import org.xwt.mips.Interpreter;
+import org.ibex.nestedvm.Runtime;
+
+//import java.io.*;
+//import java.util.*;
 
 class SpeedTest {
     private static long start,end;
@@ -10,6 +12,24 @@ class SpeedTest {
     private static void end() { end = now(); }
     private static float diff() { return ((float)(end-start))/1000; }
     
+    /*private static InputStream is = new InputStream() {
+        int left = 100*1024*1024;
+        int c = 0;
+        public int read() { if(left==0) return -1; left--; return (c++)&0xff; }
+        public int read(byte[] buf, int pos,int len) {
+            len = Math.min(left,len);
+            Arrays.fill(buf,pos,len,(byte)c++);
+            left -= len;
+            return len;
+        }
+        public void close() { left =  100*1024*1024; }
+    };
+    
+    private static OutputStream os = new OutputStream() {
+        public void write(int c) { }
+        public void write(byte[] buf, int pos, int len) { }
+    };*/
+    
     public static void main(String[] args) throws Exception {
         float d;
         
@@ -37,22 +57,29 @@ class SpeedTest {
             System.out.println("c.newInstance() took " + d + "sec");
             
             if(!Runtime.class.isAssignableFrom(c)) { System.err.println(className + " isn't a MIPS compiled class"); System.exit(1); }
+        } else {
+            throw new Error("Interpreter not supported in speedtest");
         }
             
         float times[] = new float[runs];
         
         for(int i=0;i<runs;i++) {
-            Runtime runtime = binary ? new Interpreter(className) : (Runtime) c.newInstance();
+            //Runtime runtime = binary ? new Interpreter(className) : (Runtime) c.newInstance();
+            Runtime runtime = (Runtime) c.newInstance();
+            /*runtime.closeFD(0);
+            runtime.closeFD(1);
+            runtime.addFD(new Runtime.InputStreamFD(is));
+            runtime.addFD(new Runtime.OutputStreamFD(os));*/
             System.gc();
             start();
             int status = runtime.run(appArgs);
             if(status != 0) { System.err.println(className + " failed with exit status: " + status); System.exit(1); }
             end();
+            //is.close();
             times[i] = diff();
+            System.err.println("Run " + (i+1) + ": " + times[i] + " sec");
         }
         
-        for(int i=0;i<runs;i++)
-            System.out.println("Run " + (i+1) + ": " + times[i] + " sec");
         java.util.Arrays.sort(times);
         
         System.out.println("Best: " + times[0]);