Mercurial > genshi > mirror
annotate examples/bench/run.py @ 61:448792ab1303 trunk
Use a different namespace than Kid uses.
author | cmlenz |
---|---|
date | Fri, 07 Jul 2006 17:54:52 +0000 |
parents | aa6ffd2d7274 |
children | c40a5dcd2b55 |
rev | line source |
---|---|
57
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
1 from cgi import escape |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
2 from datetime import datetime, timedelta |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
3 import os |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
4 import sys |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
5 |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
6 def markup(dirname): |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
7 from markup.template import Context, TemplateLoader |
61 | 8 loader = TemplateLoader([dirname]) |
57
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
9 template = loader.load('template.html') |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
10 def render(): |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
11 ctxt = Context(title='Just a test', |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
12 items=['Number %d' % num for num in range(1, 15)]) |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
13 template.generate(ctxt).render('html') |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
14 return render |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
15 |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
16 def cheetah(dirname): |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
17 # FIXME: infinite recursion somewhere... WTF? |
59 | 18 try: |
19 from Cheetah.Template import Template | |
20 class MyTemplate(Template): | |
21 def serverSidePath(self, path): return os.path.join(dirname, path) | |
22 filename = os.path.join(dirname, 'template.tmpl') | |
23 template = MyTemplate(file=filename) | |
57
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
24 |
59 | 25 def render(): |
26 template = MyTemplate(file=filename, | |
27 searchList=[{'title': 'Just a test', | |
28 'items': [u'Number %d' % num for num in range(1, 15)]}]) | |
29 template.respond() | |
30 return render | |
31 except ImportError: | |
32 return None | |
57
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
33 |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
34 def clearsilver(dirname): |
59 | 35 try: |
36 import neo_cgi | |
37 neo_cgi.update() | |
38 import neo_util | |
39 import neo_cs | |
40 def render(): | |
41 hdf = neo_util.HDF() | |
42 hdf.setValue('hdf.loadpaths.0', dirname) | |
43 hdf.setValue('title', escape('Just a test')) | |
44 for num in range(1, 15): | |
45 hdf.setValue('items.%d' % (num - 1), escape('Number %d' % num)) | |
46 cs = neo_cs.CS(hdf) | |
47 cs.parseFile('template.cs') | |
48 cs.render() | |
49 return render | |
50 except ImportError: | |
51 return None | |
57
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
52 |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
53 def kid(dirname): |
59 | 54 try: |
55 import kid | |
56 kid.path = kid.TemplatePath([dirname]) | |
57 template = kid.Template(file='template.kid') | |
58 def render(): | |
59 template = kid.Template(file='template.kid', | |
60 title='Just a test', | |
61 items=['Number %d' % num for num in range(1, 15)]) | |
62 template.serialize(output='xhtml') | |
63 return render | |
64 except ImportError: | |
65 return None | |
57
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
66 |
61 | 67 def nevow(dirname): |
68 # FIXME: can't figure out the API | |
69 try: | |
70 from nevow.loaders import xmlfile | |
71 template = xmlfile('template.xml', templateDir=dirname).load() | |
72 def render(): | |
73 print template | |
74 return render | |
75 except ImportError: | |
76 return None | |
77 | |
57
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
78 def main(): |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
79 basepath = os.path.abspath(os.path.dirname(__file__)) |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
80 for engine in ('markup', 'clearsilver', 'kid'): |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
81 dirname = os.path.join(basepath, engine) |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
82 print '%s:' % engine.capitalize() |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
83 func = globals()[engine](dirname) |
59 | 84 if not func: |
85 print 'Skipping %s, not installed?' % engine.capitalize() | |
86 continue | |
87 times = [] | |
88 for i in range(100): | |
89 start = datetime.now() | |
90 sys.stdout.write('.') | |
91 sys.stdout.flush() | |
92 func() | |
93 times.append(datetime.now() - start) | |
94 | |
95 print | |
96 total_ms = sum([t.seconds * 1000 + t.microseconds for t in times]) | |
97 print ' --> timing: %s (avg), %s (min), %s (max)' % ( | |
98 timedelta(microseconds=total_ms / len(times)), | |
99 timedelta(microseconds=min([t.seconds * 1000 + t.microseconds for t in times])), | |
100 timedelta(microseconds=max([t.seconds * 1000 + t.microseconds for t in times]))) | |
57
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
101 print |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
102 |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
103 if __name__ == '__main__': |
300b6a3b0730
Add some simple benchmarks to compare performance against Clearsilver, Kid, Cheetah, and more soon.
cmlenz
parents:
diff
changeset
|
104 main() |