在预分配大量内存(例如 numpy 数组)后使用系统调用时会出现性能问题。这个问题随着内存量的增加而增加。
测试.py:
import os
import sys
import time
import numpy
start = time.clock()
test = int(sys.argv[1])
a = numpy.zeros((test,500,500))
for i in range(test) :
os.system("echo true > /dev/null")
elapsed = (time.clock() - start)
print(elapsed)
每次迭代时间显着增加:
edouard@thorin:~/now3/code$ python test.py 100
0.64
edouard@thorin:~/now3/code$ python test.py 200
2.09
edouard@thorin:~/now3/code$ python test.py 400
14.26
这不应该与虚拟内存有关。这是一个已知问题吗?