详细分析请移步这里
下附测试代码和结果
计算机初始状态
利用list进行迭代
def fabbylist(max):
n, a, b = 0, 0, 1
list = []
while n < max:
list.append(b)
a, b = b, a + b
n = n + 1
return list
if __name__ == "__main__":
max = 1e9
for i in fabbylist(max):
print i
从htop中可以看出内存占用一下子暴涨很多
利用yield进行迭代
def fabbyyield(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n = n + 1
if __name__ == "__main__":
max = 1e9
for i in fabbyyield(max):
print i
内存的占用变化处于正常范围