comparison examples/bench/bigtable.py @ 319:bab19496d4fa trunk

Add [http://www.myghty.org/ Myghty] to the benchmarks, kindly contributed by Mike Bayer.
author cmlenz
date Tue, 24 Oct 2006 16:27:41 +0000
parents 88ec2b306296
children 97b0d21b81b7
comparison
equal deleted inserted replaced
317:efa7870b63cb 319:bab19496d4fa
6 # Author: Jonas Borgström <jonas@edgewall.com> 6 # Author: Jonas Borgström <jonas@edgewall.com>
7 7
8 import cgi 8 import cgi
9 import sys 9 import sys
10 import timeit 10 import timeit
11 11 from StringIO import StringIO
12 import cElementTree as cet 12 import cElementTree as cet
13 from elementtree import ElementTree as et 13 from elementtree import ElementTree as et
14 from genshi.builder import tag 14 from genshi.builder import tag
15 from genshi.template import MarkupTemplate 15 from genshi.template import MarkupTemplate
16 import neo_cgi
17 import neo_cs
18 import neo_util
19 16
20 try: 17 try:
21 import neo_cgi, neo_cs, neo_util 18 import neo_cgi, neo_cs, neo_util
22 except ImportError: 19 except ImportError:
23 neo_cgi = None 20 neo_cgi = None
32 settings.configure() 29 settings.configure()
33 from django.template import Context as DjangoContext 30 from django.template import Context as DjangoContext
34 from django.template import Template as DjangoTemplate 31 from django.template import Template as DjangoTemplate
35 except ImportError: 32 except ImportError:
36 DjangoContext = DjangoTemplate = None 33 DjangoContext = DjangoTemplate = None
34
35 try:
36 from myghty.interp import Interpreter as MyghtyInterpreter
37 except ImportError:
38 MyghtyInterpreter = None
37 39
38 table = [dict(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10) 40 table = [dict(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10)
39 for x in range(1000)] 41 for x in range(1000)]
40 42
41 genshi_tmpl = MarkupTemplate(""" 43 genshi_tmpl = MarkupTemplate("""
61 63
62 def test_django(): 64 def test_django():
63 """Djange template""" 65 """Djange template"""
64 context = DjangoContext({'table': table}) 66 context = DjangoContext({'table': table})
65 django_tmpl.render(context) 67 django_tmpl.render(context)
68
69 if MyghtyInterpreter:
70 interpreter = MyghtyInterpreter()
71 component = interpreter.make_component("""
72 <table>
73 % for row in ARGS['table']:
74 <tr>
75 % for col in row.values():
76 <td><% col %></td>
77 %
78 %
79 </tr>
80 </table>
81 """)
82 def test_myghty():
83 """Myghty Template"""
84 buf = StringIO()
85 interpreter.execute(component, request_args={'table':table}, out_buffer=buf)
66 86
67 def test_genshi(): 87 def test_genshi():
68 """Genshi template""" 88 """Genshi template"""
69 stream = genshi_tmpl.generate(table=table) 89 stream = genshi_tmpl.generate(table=table)
70 stream.render('html', strip_whitespace=False) 90 stream.render('html', strip_whitespace=False)
152 </table>""") 172 </table>""")
153 cs.render() 173 cs.render()
154 174
155 175
156 def run(which=None, number=10): 176 def run(which=None, number=10):
157 tests = ['test_builder', 'test_genshi', 'test_genshi_builder', 'test_kid', 177 tests = ['test_builder', 'test_genshi', 'test_genshi_builder', 'test_myghty', 'test_kid',
158 'test_kid_et', 'test_et', 'test_cet', 'test_clearsilver', 178 'test_kid_et', 'test_et', 'test_cet', 'test_clearsilver',
159 'test_django'] 179 'test_django']
180
160 if which: 181 if which:
161 tests = filter(lambda n: n[5:] in which, tests) 182 tests = filter(lambda n: n[5:] in which, tests)
162 183
163 for test in [t for t in tests if hasattr(sys.modules[__name__], t)]: 184 for test in [t for t in tests if hasattr(sys.modules[__name__], t)]:
164 t = timeit.Timer(setup='from __main__ import %s;' % test, 185 t = timeit.Timer(setup='from __main__ import %s;' % test,
Copyright (C) 2012-2017 Edgewall Software