From 0c4f75795f9be2970982dddb59ca10dba7ca1cbd Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Sun, 25 May 2008 20:51:09 +0200 Subject: [PATCH] and added genshi to rwbench too. want to see how much the GSOC improves performance :) --HG-- branch : trunk --- examples/rwbench/django/index.html | 2 +- examples/rwbench/genshi/helpers.html | 12 ++++++++ examples/rwbench/genshi/index.html | 41 ++++++++++++++++++++++++++++ examples/rwbench/genshi/layout.html | 30 ++++++++++++++++++++ examples/rwbench/jinja/index.html | 2 +- examples/rwbench/mako/index.html | 2 +- examples/rwbench/rwbench.py | 9 +++++- 7 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 examples/rwbench/genshi/helpers.html create mode 100644 examples/rwbench/genshi/index.html create mode 100644 examples/rwbench/genshi/layout.html diff --git a/examples/rwbench/django/index.html b/examples/rwbench/django/index.html index b5da4ccd..6f620bb2 100644 --- a/examples/rwbench/django/index.html +++ b/examples/rwbench/django/index.html @@ -18,7 +18,7 @@
{% input_field 'email' %}
URL
{% input_field 'url' %}
-
Comment +
Comment
{% textarea 'comment' %}
Captcha
{% input_field 'captcha' %}
diff --git a/examples/rwbench/genshi/helpers.html b/examples/rwbench/genshi/helpers.html new file mode 100644 index 00000000..ecc6dc4d --- /dev/null +++ b/examples/rwbench/genshi/helpers.html @@ -0,0 +1,12 @@ +
+ + + + + + + + + +
diff --git a/examples/rwbench/genshi/index.html b/examples/rwbench/genshi/index.html new file mode 100644 index 00000000..70f697d5 --- /dev/null +++ b/examples/rwbench/genshi/index.html @@ -0,0 +1,41 @@ + + + + + Index Page + +
+ +

${article.title}

+

written by ${article.user.username} on ${dateformat(article.pub_date)}

+
${Markup(article.body)}
+
+
+ +
+
+
Name
+
${input_field('name')}
+
E-Mail
+
${input_field('email')}
+
URL
+
${input_field('url')}
+
Comment
+
${textarea('comment')}
+
Captcha
+
${input_field('captcha')}
+
+ ${input_field(type='submit', value='Submit')} + ${input_field(name='cancel', type='submit', value='Cancel')} +
+ + diff --git a/examples/rwbench/genshi/layout.html b/examples/rwbench/genshi/layout.html new file mode 100644 index 00000000..b12aec48 --- /dev/null +++ b/examples/rwbench/genshi/layout.html @@ -0,0 +1,30 @@ + + + + ${select('title/text()')} | RealWorld Benchmark + + + + + +
+
+

RealWorld Benchmark

+

+ A less stupid benchmark for Mako and Jinja2 to get an impression how + code changes affect runtime performance. +

+
+ +
+ ${select('*|text()')} +
+ +
+ +
+ diff --git a/examples/rwbench/jinja/index.html b/examples/rwbench/jinja/index.html index 83381130..b006d056 100644 --- a/examples/rwbench/jinja/index.html +++ b/examples/rwbench/jinja/index.html @@ -18,7 +18,7 @@
{{ input_field('email') }}
URL
{{ input_field('url') }}
-
Comment +
Comment
{{ textarea('comment') }}
Captcha
{{ input_field('captcha') }}
diff --git a/examples/rwbench/mako/index.html b/examples/rwbench/mako/index.html index dde6c8ee..c4c63032 100644 --- a/examples/rwbench/mako/index.html +++ b/examples/rwbench/mako/index.html @@ -21,7 +21,7 @@
${input_field('email')}
URL
${input_field('url')}
-
Comment +
Comment
${textarea('comment')}
Captcha
${input_field('captcha')}
diff --git a/examples/rwbench/rwbench.py b/examples/rwbench/rwbench.py index 4714da47..1bde0569 100644 --- a/examples/rwbench/rwbench.py +++ b/examples/rwbench/rwbench.py @@ -20,6 +20,7 @@ from timeit import Timer from jinja2 import Environment, FileSystemLoader from jinja2.utils import generate_lorem_ipsum from mako.lookup import TemplateLookup +from genshi.template import TemplateLoader as GenshiTemplateLoader def dateformat(x): @@ -29,6 +30,7 @@ def dateformat(x): jinja_env = Environment(loader=FileSystemLoader(join(ROOT, 'jinja'))) jinja_env.filters['dateformat'] = dateformat mako_lookup = TemplateLookup(directories=[join(ROOT, 'mako')]) +genshi_loader = GenshiTemplateLoader([join(ROOT, 'genshi')]) class Article(object): @@ -65,6 +67,7 @@ context = dict(users=users, articles=articles, page_navigation=navigation) jinja_template = jinja_env.get_template('index.html') mako_template = mako_lookup.get_template('index.html') +genshi_template = genshi_loader.load('index.html') def test_jinja(): @@ -80,9 +83,13 @@ def test_django(): django_template.render(DjangoContext(context)) +def test_genshi(): + genshi_template.generate(**context).render('html', doctype='html') + + if __name__ == '__main__': sys.stdout.write('Realworldish Benchmark:\n') - for test in 'jinja', 'mako', 'django': + for test in 'jinja', 'mako', 'django', 'genshi': t = Timer(setup='from __main__ import test_%s as bench' % test, stmt='bench()') sys.stdout.write(' >> %-20s' % test) -- 2.47.3