Awesome
template-benchmark
JMH benchmark for popular Java template engines:
Running the benchmark
- Download the source code and build it (
mvn clean install
) - Run the entire benchmark suite with
java -jar target/benchmarks.jar
- (Optional) To run a single benchmark, such as Mustache, use
java -jar target/benchmarks.jar Mustache
Generating plot
- Run benchmark while exporting results to csv with
java -jar target/benchmarks.jar -rff results.csv -rf csv
- Use gnuplot to generate plot with
gnuplot benchmark.plot
. This will outputresults.png
.
Rules of Template Engine Configuration
It is imperative that each template engine is configured in way to reflect real-world usage as opposed to it's optimal configuration. Typically this means an out-of-the-box configuration.
To strive for a common set of features across template engines, the following configurations are expected:
- Disabling of HTML escaping
- Template loaded from classpath prior to actual benchmark
Interpreting the Results
The benchmarks measure throughput, given in "ops/time". The time unit used is seconds. Generally, the score represents the number of templates rendered per second; the higher the score, the better.