我正在阅读有关Python中的Yield表达式和生成器的信息,这种方法在大量计算过程中非常鼓励。
要检查一下,我已经创建了一个简单的.py脚本,以便使用yield表达式和内存范围内置类来测量一种方法之间的时间。
这是脚本:
import time
def pow():
for i in range(100000000):
yield i*i
start_time = time.time()
for i in pow():
res = i
print('Seconds Yield: {0}'.format(time.time() - start_time))
start_time = time.time()
for i in range(100000000):
res = i*i
print('Seconds in-memory: {0}'.format(time.time() - start_time))
这有点奇怪的行为,因为,我已经通过我的终端运行脚本,结果是:
Seconds Yield: 17.303140878677368
Seconds in-memory: 17.322022914886475
我期待"收益率"方法,但无论如何都高于内存方法"。
我已经检查了我的系统监视器,如果使用的RAM或CPU的热量有差异,但无论如何都是相同的......
......有人可以解释我为什么???
感谢。