01: package org.drools.compiler;
02:
03: import java.io.IOException;
04: import java.io.InputStreamReader;
05:
06: import org.drools.rule.Package;
07:
08: import junit.framework.TestCase;
09:
10: public class CompilerPerfProfileTest extends TestCase {
11:
12: public void testProfileRuns() throws Exception {
13:
14: //first run for warm up
15: build("JDT", "largeRuleNumber.drl", false);
16: build("MVEL", "largeRuleNumberMVEL.drl", false);
17:
18: System.gc();
19: Thread.sleep(100);
20:
21: build("MVEL", "largeRuleNumberMVEL.drl", true);
22:
23: System.gc();
24: Thread.sleep(100);
25:
26: build("JDT", "largeRuleNumber.drl", true);
27:
28: }
29:
30: private void build(String msg, String resource, boolean showResults)
31: throws DroolsParserException, IOException {
32: final PackageBuilder builder = new PackageBuilder();
33: long start = System.currentTimeMillis();
34: builder.addPackageFromDrl(new InputStreamReader(getClass()
35: .getResourceAsStream(resource)));
36: final Package pkg = builder.getPackage();
37: assertFalse(builder.hasErrors());
38: assertNotNull(pkg);
39: if (showResults) {
40: System.out.print("Time taken for " + msg + " : "
41: + (System.currentTimeMillis() - start));
42: }
43: }
44:
45: }
|