Ticket #2245: deferbenchmark.patch
| File deferbenchmark.patch, 2.1 KB (added by Peaker, 6 years ago) |
|---|
-
doc/core/benchmarks/printtimer.py
1 """A Timer that prints the results""" 2 3 import gc 4 gc.disable() 5 print 'Disabled GC' 6 7 def timeit(func, iter = 1000, *args, **kwargs): 8 """timeit(func, iter = 1000 *args, **kwargs) -> elapsed time 9 10 calls func iter times with args and kwargs, returns time elapsed 11 """ 12 13 import time 14 r = xrange(iter) 15 times = [] 16 clocks = [] 17 outer_iter = kwargs.pop('outer_iter', 1) 18 for i in xrange(outer_iter): 19 t = time.time() 20 c = time.clock() 21 for i in r: 22 func(*args, **kwargs) 23 new_time = time.time() 24 new_clock = time.clock() 25 times.append(new_time - t) 26 clocks.append(new_clock - c) 27 _print_times('Times', times) 28 _print_times('Clocks', clocks) 29 30 def _print_times(label, samples): 31 ss = sorted(samples) 32 print label 33 print ' Median: %s' % (ss[len(ss)//2],) 34 print ' Avg: %s' % (1.0 * sum(ss) / len(ss),) -
doc/core/benchmarks/defer.py
1 from twisted.internet import defer 2 from printtimer import timeit 3 4 def instantiate(): 5 d = defer.Deferred() 6 7 def instantiate_shoot_callback(): 8 d = defer.Deferred() 9 d.callback(1) 10 11 def instantiate_shoot_errback(): 12 d = defer.Deferred() 13 try: 14 1/0 15 except: 16 d.errback() 17 d.addErrback(lambda x: None) 18 19 def instantiate_add_callbacks_before_result(): 20 d = defer.Deferred() 21 def f(result): 22 return result 23 d.addCallback(f) 24 d.addErrback(f) 25 d.addBoth(f) 26 d.addCallbacks(f) 27 28 funcs = [ 29 instantiate, 30 instantiate_shoot_callback, 31 instantiate_shoot_errback, 32 instantiate_add_callbacks_before_result, 33 ] 34 35 print defer.Deferred.__module__ 36 for func in funcs: 37 print func 38 timeit(func, outer_iter=20)
