import sys
import profile as profiler
import pstats
sys.path.insert(0, '/Users/chrism/projects/meld/z310/lib/python')
from zope.pagetemplate.pagetemplate import PageTemplate
class mypt(PageTemplate):
def pt_getContext(self, args=(), options={}, **kw):
rval = PageTemplate.pt_getContext(self, args=args)
options.update(rval)
return options
template = """
This is the title
This is the head slot
"""
class IO:
def __init__(self):
self.data = []
def write(self, data):
self.data.append(data)
def getvalue(self):
return ''.join(self.data)
def clear(self):
self.data = []
values = []
for thing in range(0, 20):
values.append((str(thing), str(thing)))
def test(pt):
foo = pt(values=values)
def profile(num):
## import cProfile
## profiler = cProfile
profiler.run("[test(pt) for x in range(0,100)]", 'logfile_zpt.dat')
stats = pstats.Stats('logfile_zpt.dat')
stats.strip_dirs()
stats.sort_stats('cumulative', 'calls')
#stats.sort_stats('calls')
stats.print_stats(num)
if __name__ == '__main__':
pt = mypt()
pt.write(template)
test(pt)
profile(30)
import timeit
t = timeit.Timer("test(pt)", "from __main__ import test, pt")
repeat = 50
number = 50
result = t.repeat(repeat, number)
best = min(result)
print "%d loops " % repeat
usec = best * 1e6 / number
msec = usec / 1000
print "best of %d: %.*g msec per loop" % (repeat, 8, msec)