package jetbrick.template.performance; import java.io.StringWriter; import java.io.Writer; import java.util.*; import jetbrick.template.*; import jetbrick.util.ExceptionUtils; public class PerformanceTest { static boolean WAIT = true; static int warm = 20000; static int loop = 500000; public static void main(String[] args) throws Throwable { Properties config = new Properties(); config.setProperty(JetConfig.IMPORT_CLASSES, Model.class.getName()); JetEngine engine = JetEngine.create(config); Map<String, Object> context = new HashMap<String, Object>(); context.put("outputEncoding", "utf-8"); context.put("items", Model.dummyItems()); System.out.println("warming ...."); for (int i = 0; i < warm; i++) { eval(engine, context); } Thread.sleep(2000); System.out.println("wait to start ...."); while (WAIT) { if (System.in.read() == 10) break; } System.out.println("starting ...."); long ts = System.nanoTime(); for (int i = 0; i < loop; i++) { eval(engine, context); } ts = (System.nanoTime() - ts) / 1000000; long tps = loop * 1000 / ts; System.out.println("time = " + ts + " ms, tps = " + tps); while (WAIT) { if (System.in.read() == 10) break; } } protected static void eval(JetEngine engine, Map<String, Object> context) { JetTemplate template = engine.getTemplate("/jetbrick/template/performance/template.jetx"); Writer out = new StringWriter(); try { template.render(context, out); //System.out.println(out.toString()); } catch (Exception e) { throw ExceptionUtils.unchecked(e); } } }