Re: [Twisted-Python] Speed of rendering?
Peter Westlake <[email protected]> Fri, 04 Jan 2013 18:30:47 +0000
| Newsgroups | gmane.comp.python.twisted.web |
|---|---|
| Message-ID | <1357324247.31399.140661173476561.11F56E5E@webmail.messagingengine.com> |
A while back I promised to write some benchmarks for
twisted.web.template's flattening functions. Is something like this
suitable? If so, I'll add lots more test cases. The output format could
be improved, too - any preferences?
Peter.
from twisted.web.template import flatten
from twisted.web.server import Request
import twisted.web.http
channel = twisted.web.http.HTTPChannel()
request = Request(channel, False)
def make(content):
def f():
d = flatten(request, content, lambda _: None)
assert d.called
return f
def test(content):
return timeit.timeit(stmt=make(content), number=repeats)
repeats = 1000
deeplist = ['centre']
for n in range(100):
deeplist = [deeplist]
tests = {
'empty': '',
'string': 'hello',
'shortlist': ['hello'],
'longlist': [str(n) for n in range(100)],
'deeplist': deeplist,
}
if __name__ == '__main__':
import timeit
from sys import argv
for name in argv[1:] or tests:
print name, test(tests[name])