网络上已经有无数文章或教程介绍迭代器,本文不涉及迭代器用法,主要通过一个实验效果,来说明它的应用意义。
实验的代码:
#迭代器效果演示
gen = (x for x in range(30000000))
for i in gen:
print(i)
#列表效果演示
lis = [x for x in range(30000000)]
for i in lis:
print(i)
分别运行两段代码,并观察系统相关信息
A:使用迭代器的效果:
内存稳定在41%左右
B:使用列表的效果:
内存稳定在50%左右
1、测试的系统内存是8G,也就是说,使用列表多用了近10%,约1G的内存。
2、调整代码,继续增大循环次数,列表方式占用的内存还会继续增加,直到内存耗尽,造成系统卡顿甚至死机。而迭代器方式,内存占用没有变化,完美解决了内存占用的问题。