changeset 679:1efe990d675e experimental-optimizer

Same for bigtable. Around 36% faster.
author athomas
date Wed, 23 Jan 2008 14:13:51 +0000
parents 905070c31ea8
children 581abd96c9e4
files examples/bench/bigtable.py
diffstat 1 files changed, 18 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/examples/bench/bigtable.py
+++ b/examples/bench/bigtable.py
@@ -11,6 +11,7 @@
 from StringIO import StringIO
 from genshi.builder import tag
 from genshi.template import MarkupTemplate, NewTextTemplate
+from genshi.template.optimize import Optimizer, StaticStrategy
 
 try:
     from elementtree import ElementTree as et
@@ -56,6 +57,14 @@
 </table>
 """)
 
+genshi_opt_tmpl = Optimizer(MarkupTemplate("""
+<table xmlns:py="http://genshi.edgewall.org/">
+<tr py:for="row in table">
+<td py:for="c in row.values()" py:content="c"/>
+</tr>
+</table>
+"""), [StaticStrategy()])
+
 genshi_tmpl2 = MarkupTemplate("""
 <table xmlns:py="http://genshi.edgewall.org/">$table</table>
 """)
@@ -103,6 +112,11 @@
     stream = genshi_tmpl.generate(table=table)
     stream.render('html', strip_whitespace=False)
 
+def test_genshi_opt():
+    """Genshi optimizer"""
+    stream = genshi_opt_tmpl.generate(table=table)
+    stream.render('html', strip_whitespace=False)
+
 def test_genshi_text():
     """Genshi text template"""
     stream = genshi_text_tmpl.generate(table=table)
@@ -196,9 +210,10 @@
 
 
 def run(which=None, number=10):
-    tests = ['test_builder', 'test_genshi', 'test_genshi_text',
-             'test_genshi_builder', 'test_mako', 'test_kid', 'test_kid_et',
-             'test_et', 'test_cet', 'test_clearsilver', 'test_django']
+    tests = ['test_builder', 'test_genshi', 'test_genshi_opt',
+             'test_genshi_text', 'test_genshi_builder', 'test_mako',
+             'test_kid', 'test_kid_et', 'test_et', 'test_cet',
+             'test_clearsilver', 'test_django']
 
     if which:
         tests = filter(lambda n: n[5:] in which, tests)
Copyright (C) 2012-2017 Edgewall Software