comparison examples/bench/basic.py @ 540:661715b49c0c

Replace Myghty by Mako in basic benchmark.
author cmlenz
date Thu, 28 Jun 2007 17:32:19 +0000
parents 4811658d7ac0
children ecb5729c06b1
comparison
equal deleted inserted replaced
538:19c7dc1e4dd5 540:661715b49c0c
7 import os 7 import os
8 from StringIO import StringIO 8 from StringIO import StringIO
9 import sys 9 import sys
10 import timeit 10 import timeit
11 11
12 __all__ = ['clearsilver', 'myghty', 'django', 'kid', 'genshi', 'cheetah'] 12 __all__ = ['clearsilver', 'mako', 'django', 'kid', 'genshi', 'cheetah']
13 13
14 def genshi(dirname, verbose=False): 14 def genshi(dirname, verbose=False):
15 from genshi.template import TemplateLoader 15 from genshi.template import TemplateLoader
16 loader = TemplateLoader([dirname], auto_reload=False) 16 loader = TemplateLoader([dirname], auto_reload=False)
17 template = loader.load('template.html') 17 template = loader.load('template.html')
22 22
23 if verbose: 23 if verbose:
24 print render() 24 print render()
25 return render 25 return render
26 26
27 def myghty(dirname, verbose=False): 27 def mako(dirname, verbose=False):
28 try: 28 from mako.lookup import TemplateLookup
29 from myghty import interp 29 lookup = TemplateLookup(directories=[dirname], filesystem_checks=False)
30 except ImportError: 30 template = lookup.get_template('template.html')
31 print>>sys.stderr, 'Mighty not installed, skipping'
32 return lambda: None
33 interpreter = interp.Interpreter(component_root=dirname)
34 def render(): 31 def render():
35 data = dict(title='Just a test', user='joe', 32 data = dict(title='Just a test', user='joe',
36 items=['Number %d' % num for num in range(1, 15)]) 33 list_items=['Number %d' % num for num in range(1, 15)])
37 buffer = StringIO() 34 return template.render(**data)
38 interpreter.execute("template.myt", request_args=data, out_buffer=buffer)
39 return buffer.getvalue()
40 if verbose: 35 if verbose:
41 print render() 36 print render()
42 return render 37 return render
43 38
44 def cheetah(dirname, verbose=False): 39 def cheetah(dirname, verbose=False):
184 prof = hotshot.Profile("template.prof") 179 prof = hotshot.Profile("template.prof")
185 benchtime = prof.runcall(run, engines, number=100, verbose=verbose) 180 benchtime = prof.runcall(run, engines, number=100, verbose=verbose)
186 stats = hotshot.stats.load("template.prof") 181 stats = hotshot.stats.load("template.prof")
187 stats.strip_dirs() 182 stats.strip_dirs()
188 stats.sort_stats('time', 'calls') 183 stats.sort_stats('time', 'calls')
189 stats.print_stats() 184 stats.print_stats(.05)
190 else: 185 else:
191 run(engines, verbose=verbose) 186 run(engines, verbose=verbose)
Copyright (C) 2012-2017 Edgewall Software