'''Benchmark app.''' __author__ = 'Guido van Rossum ' import time from scheduler import async from SingleThreadScheduler import SingleThreadScheduler @async def binary(n): if n <= 0: return 1 l = yield binary(n-1) r = yield binary(n-1) return l + 1 + r @async def main(depth): t0 = time.time() k = yield binary(depth) t1 = time.time() print(depth, k, round(t1-t0, 6)) return (depth, k, round(t1-t0, 6)) for depth in range(20): SingleThreadScheduler().run(main, depth=depth)