1 package comp.jls; 2 3 import java.io.*; 4 5 import beaver.Scanner; 6 import beaver.Parser; 7 8 class Test 9 { 10 public static void main(String [] args) throws Exception 11 { 12 int count = Integer.parseInt(args[0]); 13 14 char[][] txts = new char[args.length - 1][]; 15 for (int i = 1; i < args.length; i++) 16 { 17 String name = args[i]; 18 File src = new File(name); 19 txts[i - 1] = new char[(int) src.length()]; 20 Reader txt_reader = new FileReader(src); 21 try 22 { 23 txt_reader.read(txts[i - 1]); 24 } 25 finally 26 { 27 txt_reader.close(); 28 } 29 } 30 31 JavaParser parser = new JavaParser(); 32 for (int n = 0; n < txts.length; n++) 33 { 34 JavaScanner input = new JavaScanner(new UnicodeEscapes(new CharArrayReader(txts[n]))); 35 parse(input, parser); 36 } 37 System.gc(); 38 39 long tt = 0; 40 for (int i = 0; i < count; i++) 41 { 42 long ct = 0; 43 for (int n = 0; n < txts.length; n++) 44 { 45 JavaScanner input = new JavaScanner(new UnicodeEscapes(new CharArrayReader(txts[n]))); 46 long dt = parse(input, parser); 47 ct += dt; 48 tt += dt; 49 } 50 System.gc(); 52 } 53 System.out.println(txts.length + " files parsed " + count + " times in " + tt + "ms (avg=" + (((double) tt) / count) + "ms)"); 54 } 55 56 private static long parse(JavaScanner input, JavaParser parser) 57 { 58 long t0 = System.currentTimeMillis(); 59 try 60 { 61 parser.parse(input); 62 } 63 catch (IOException e) 64 { 65 System.err.println("Error reading input: " + e.getMessage()); 66 } 67 catch (Parser.Exception e) 68 { 69 System.err.println("Bad expression: " + e.getMessage()); 70 } 71 return System.currentTimeMillis() - t0; 72 } 73 } 74 | Popular Tags |