Numpy load()内存溢出导致Segmentation故障

时间:2016-05-21 19:13:48

标签: python numpy

使用以下代码导致内存溢出:

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)。

1 个答案:

答案 0 :(得分:1)

我正在为您提供多种资源,但 通常是非常依赖操作系统/系统 SegFlts

简单回答:您可能正在使用它,因为您正在尝试访问内存中不存在的内存地址当您的内存模块出现问题或因为以下任何问题时,它也可能会获得 segFaults (这些应该清除您的疑虑):

请注意:Segfault instead of MemoryError when bytearray too big

另外,为什么分段错误? Possible answer

追踪SegFault(如果你仍觉得有些东西可疑!):python tracing a segmentation fault

参考:Similar question

提出的问题实际上是广泛的,因为答案可能需要一些解释(因此添加了相关链接)。