From: Ben Darnell Date: Thu, 28 Jul 2011 05:01:05 +0000 (-0700) Subject: Add a template benchmark, based on one in jinja2 X-Git-Tag: v2.1.0~66 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a7e30896bbafeebbdfdb7a85eb4d1a1ca75e4d0;p=thirdparty%2Ftornado.git Add a template benchmark, based on one in jinja2 --- diff --git a/demos/benchmark/template_benchmark.py b/demos/benchmark/template_benchmark.py new file mode 100755 index 000000000..07833af74 --- /dev/null +++ b/demos/benchmark/template_benchmark.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# +# A simple benchmark of tornado template rendering, based on +# https://github.com/mitsuhiko/jinja2/blob/master/examples/bench.py + +from timeit import Timer + +from tornado.options import options, define, parse_command_line +from tornado.template import Template + +define('num', default=100, help='number of iterations') + +context = { + 'page_title': 'mitsuhiko\'s benchmark', + 'table': [dict(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10) for x in range(1000)] +} + +tmpl = Template("""\ + + + + {{ page_title }} + + +
+

{{ page_title }}

+
+ +
+ + {% for row in table %} + + {% for cell in row %} + + {% end %} + + {% end %} +
{{ cell }}
+
+ +\ +""") + +def render(): + tmpl.generate(**context) + +def main(): + parse_command_line() + t = Timer(render) + results = t.timeit(options.num) / options.num + print '%0.3f ms per iteration' % (results*1000) + +if __name__ == '__main__': + main()