@@ -0,0 +1,1628 @@
+/*%0A * See LICENSE file in distribution for copyright and licensing information.%0A */%0Apackage ioke.lang.performance;%0A%0Aimport java.io.*;%0A%0Aimport ioke.lang.*;%0Aimport ioke.lang.parser.*;%0A%0A/**%0A * @author %3Ca href=%22mailto:ola.bini@gmail.com%22%3EOla Bini%3C/a%3E%0A */%0Apublic class Parsing %7B%0A    public static void main(String%5B%5D args) throws Exception, ioke.lang.exceptions.ControlFlow %7B%0A        String filename = args%5B0%5D;%0A        System.out.println(%22Reading of file: %5C%22%22 + filename + %22%5C%22%22);%0A%0A        File f = new File(filename);%0A        InputStream reader = new FileInputStream(f);%0A        byte%5B%5D result = new byte%5B(int)f.length()%5D;%0A%0A        int offset = 0;%0A        int numRead = 0;%0A        while(offset %3C result.length && (numRead = reader.read(result, offset, result.length-offset)) %3E= 0) %7B%0A            offset += numRead;%0A        %7D%0A        reader.close();%0A%0A        long before, after, time;%0A        double timeS;%0A%0A        ioke.lang.Runtime runtime = new ioke.lang.Runtime();%0A        runtime.init();%0A        for(int j=0;j%3C10;j++) %7B%0A            before = System.currentTimeMillis();%0A            for(int i=0;i%3C100;i++) %7B%0A                IokeParser parser = new IokeParser(runtime, new InputStreamReader(new ByteArrayInputStream(result)), null, null);%0A                IokeObject m = parser.parseFully();%0A                ((Message)IokeObject.data(m.runtime.opShuffle)).sendTo(m.runtime.opShuffle, m.runtime.ground, m);%0A            %7D%0A            after = System.currentTimeMillis();%0A            time = after-before;%0A            timeS = (after-before)/1000.0;%0A            System.out.printf(%22 %25-10d %25-10f%5Cn%22, time, timeS); %0A        %7D%0A    %7D%0A%7D// Parsing%0A%0A

Add a performance tester for parsing