public void count( Counter counter, int times, String name, Map<String, Object> context, Writer writer, Writer discardWriter, OutputStream discardStream) throws Exception { counter.beginning(); GroupTemplate group = new GroupTemplate(); group.enableOptimize(); group.enableNativeCall(); counter.initialized(); Template template = group.getReaderTemplate( new InputStreamReader( BeetlCase.class.getClassLoader().getResourceAsStream("performance/books.btl"))); for (Map.Entry<String, Object> entry : context.entrySet()) { template.set(entry.getKey(), entry.getValue()); } counter.compiled(); template.getText(writer); counter.executed(); if (discardStream != null) { for (int i = times; i >= 0; i--) { template.getText(discardStream); } } else { for (int i = times; i >= 0; i--) { template.getText(discardWriter); } } counter.finished(); }