我正在使用The Grinder,我有一个Python脚本,它执行一些Java API来收集最小,最大,执行次数和总执行次数(后者2来获取平均执行时间)。这是为每个API(它是一个多维数组)和每个线程完成的。
#Contents of apiTimingsList array: [min, max, number of executions, total execution time]
apiTimingsList = [[9999,0,0,0] for j in range(len(apiList))]
我正在调查一些内存问题,我认为这个数组不断增长的大小可能是一个问题。随着测试的进行,它会不断增长。例如,如果我有10个API并且运行900个线程,那么只要测试运行,就有9000个阵列会继续增长。
有没有办法限制这些数组的大小,也就是说只保留最后x个执行次数,这样我的计算仍然有效,但数组不会失控?
答案 0 :(得分:3)
您可以使用collections.deque
:
>>> from collections import deque
>>> d = deque(maxlen=2)
>>> d.append(3)
>>> d.append(4)
>>> d.append(5)
>>> d
deque([4, 5], maxlen=2)
答案 1 :(得分:1)
deque
模块中的collections
可能会达到您想要的效果。