Benchmark for Catberry's server-side rendering
For now, it's just a comparison with bare express application which uses Jade template engine.
The ApacheBench, Version 2.3 <$Revision: 1604373 $>
is used for testing:
- Number of requests is 3000
- Concurrency level is 10
Both applications should:
- Render almost identical HTML (except Catberry renders the extra symbol in style tag).
- Use the same set of data generated by
./generate-data.js
script and saved as./data.json
- Have configurations with turned off log messages for every request
- Have last versions of packages (
./setup.sh
to install all dependencies)
You can find the results in the ./results
directory which are received on such configuration:
- MacBook Pro (Retina, 13-inch, Early 2015)
- 2,7 GHz Intel Core i5
- 8 GB 1867 MHz DDR3
- Intel Iris Graphics 6100 1536 MB
- OS X 10.11.3
- [email protected]
- [email protected]
node --version
v5.8.0
Here are the main numbers:
Requests per second: 354.02 [#/sec] (mean)
Time per request: 28.247 [ms] (mean)
Time per request: 2.825 [ms] (mean, across all concurrent requests)
Transfer rate: 641.66 [Kbytes/sec] received
Requests per second: 154.88 [#/sec] (mean)
Time per request: 64.566 [ms] (mean)
Time per request: 6.457 [ms] (mean, across all concurrent requests)
Transfer rate: 289.49 [Kbytes/sec] received
Despite on Catberry's stream-based and component-based rendering engine which has overhead related to usage of stream transformations with HTML parsing it has better performance than a bare Express with the same template engine at least on small size of data.
Feel free to submit a PR with your benchmark built the same way.