使用以下代码导致内存溢出:
import numpy as np
a = np.arange(10000000)
np.save('a', a)
l = []
while True:
l.append(np.load('a.npy'))
Python错误出现Segmentation错误,而不是MemoryError。对于像AWS EC2这样没有交换内存的机器来说似乎就是这种情况(我已经尝试过使用更多RAM和交换内存的机器而且我得到了一个MemoryError)。
答案 0 :(得分:1)
我正在为您提供多种资源,但 通常是非常依赖操作系统/系统 。 SegFlts
简单回答:您可能正在使用它,因为您正在尝试访问内存中不存在的内存地址。 当您的内存模块出现问题或因为以下任何问题时,它也可能会获得 segFaults (这些应该清除您的疑虑):
请注意:Segfault instead of MemoryError when bytearray too big
另外,为什么分段错误? Possible answer
追踪SegFault(如果你仍觉得有些东西可疑!):python tracing a segmentation fault
提出的问题实际上是广泛的,因为答案可能需要一些解释(因此添加了相关链接)。