python 2简单的循环高内存使用

python 2 simple for loop high memory usage

本问题已经有最佳答案,请猛点这里访问。

使用python 2.7和3.5进行测试

1
2
for i in range(0, 1000000000):
    pass

当我使用python3运行此代码时,一切都很好(内存使用量少于3MB)

但是根据python2的内存使用量是32GB(我的服务器只有32GB的RAM)

如何为python 2.7修复这个问题?


rangePython 2.7和3是在不同的rangePython函数。Python中的3它返回一个迭代器的值由一个提供。Python中的一个。它的收益是一些存储器阵列已被分配。它可以解决通过使用xrange函数在Python 2.7版本。

1
2
3
4
5
6
7
8
9
10
11
12
Python 2.7.12
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> xrange(10)
xrange(10)
>>> iterator = iter(xrange(10))
>>> iterator.next()
0
>>> iterator.next()
1
>>> iterator.next()
2