python/perf.py
import time
cnt= int(1e6)
print(__file__, cnt)
s = 0
start = time.process_time()
for i in range(cnt):
pass
end = time.process_time()
print(end - start, 'for pass')
def x():
for i in range(cnt):
yield i
def y(lev):
yield from y(lev-1) if lev > 0 else x()
start = time.process_time()
for i in x():
pass
end = time.process_time()
print(end - start, 'for yield pass')
for l in (0, 1, 5, 10 ,100):
start = time.process_time()
for i in y(5):
pass
end = time.process_time()
print(end - start, 'for yield from pass level', l)