我正在学习python,遇到了一个问题,它要求计算运行时间
使用timeit的长度为10^8的随机输入集。我知道如何使用timeit,但我在创建10^8大小的数组时遇到了困难。下面,我展示我的方法。在
t = Timer(lambda: inversions_brute_force([4, 1, 3, 2, 9, 1]))
print 'time:' + str(t.timeit(number=1))
为了得到阵列,我试着这样做:
^{pr2}$
但是我遇到了一个记忆错误。有什么想法吗?在
Tags:
你得到了一个内存错误,因为一个python列表包含10**8个整数真的很大。在
我用memory_profiler做了一个小测试。range(10**8)在我的笔记本上占用了将近3GB的内存,所以如果你的计算机内存小于3GB,这是正常的。在
你说:
我只是想知道你在评估什么,你的算法或者Python的速度/内存使用情况?为什么长度应该是10^8?长度能再小一点吗?在
另外,使用numpy可以优化内存使用。随机抽样也应替换为随机洗牌当您只希望序列是随机的时,后者在速度和内存使用方面都要高效得多。在
^{pr2}$相关问题 更多 >
编程相关推荐