KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > comp > jls > Test


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 JavaDoc[] args) throws Exception JavaDoc
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 JavaDoc 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.out.print((i + 1) + ": " + ct + "ms\t\t\r");
51
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