MCPcopy Create free account
hub / github.com/antlr/codebuff / main

Method main

src/org/antlr/codebuff/validation/Speed.java:32–77  ·  view source on GitHub ↗
(String[] args)

Source from the content-addressed store, hash-verified

30public class Speed {
31 public static final int TRIALS = 20;
32 public static void main(String[] args) throws Exception {
33 String langname = args[0].substring(1);
34 String testFilename = args[1];
35 LangDescriptor language = null;
36 for (int i = 0; i<languages.length; i++) {
37 if ( languages[i].name.equals(langname) ) {
38 language = languages[i];
39 break;
40 }
41 }
42 if ( language==null ) {
43 System.err.println("Language "+langname+" unknown");
44 return;
45 }
46
47 // load all files up front
48 long load_start = System.nanoTime();
49 List<String> allFiles = getFilenames(new File(language.corpusDir), language.fileRegex);
50 List<InputDocument> documents = Tool.load(allFiles, language);
51 long load_stop = System.nanoTime();
52 long load_time = (load_stop-load_start)/1_000_000;
53 System.out.printf("Loaded %d files in %dms\n", documents.size(), load_time);
54
55 final String path = new File(testFilename).getAbsolutePath();
56 List<InputDocument> others = filter(documents, d -> !d.fileName.equals(path));
57 List<InputDocument> excluded = filter(documents, d -> d.fileName.equals(path));
58 assert others.size() == documents.size() - 1;
59 if ( excluded.size()==0 ) {
60 System.err.println("Doc not in corpus: "+path);
61 return;
62 }
63 InputDocument testDoc = excluded.get(0);
64
65 List<Integer> training = new ArrayList<>();
66 List<Integer> formatting = new ArrayList<>();
67 for (int i = 1; i<=TRIALS; i++) {
68 Pair<Integer, Integer> timing = test(language, others, testDoc);
69 training.add(timing.a);
70 formatting.add(timing.b);
71 }
72 // drop first four
73 training = training.subList(5,training.size());
74 formatting = formatting.subList(5,formatting.size());
75 System.out.printf("median of [5:%d] training %dms\n", TRIALS-1, BuffUtils.median(training));
76 System.out.printf("median of [5:%d] formatting %dms\n", TRIALS-1, BuffUtils.median(formatting));
77 }
78
79 public static Pair<Integer,Integer> test(LangDescriptor language,
80 List<InputDocument> others,

Callers

nothing calls this directly

Calls 10

loadMethod · 0.95
testMethod · 0.95
medianMethod · 0.95
getFilenamesMethod · 0.80
equalsMethod · 0.65
sizeMethod · 0.65
getMethod · 0.65
addMethod · 0.65
filterMethod · 0.45
subListMethod · 0.45

Tested by

no test coverage detected