【问题标题】:How can I cause a Memory Error in python 2.7?如何在 python 2.7 中导致内存错误?
【发布时间】:2021-01-11 15:03:15
【问题描述】:

我正在使用大约 128KB RAM 的系统,我的一个脚本偶尔会导致 ERRNO 12 Cannot Allocate Memory 错误。

我想测试一些解决方案。

但是,当问题看似每天随机发生一次时,我该如何复制呢?

任何会导致 ERRNO 12 Cannot Allocate Memory 错误的错误脚本?

大多数帖子都在尝试解决内存错误,我想让一个人测试我的代码的健壮性。

【问题讨论】:

  • 嗯,有点像[None]*1000000000?我假设您正在使用 micropython?
  • 您是否尝试过将足够大的文本文件读入字符串变量?
  • OpenWRT 嵌入式设备上的 python 2.7
  • 虽然创建 MemoryError 很容易,但我看不出这样做将如何帮助您解决问题。通常(并非总是)MemoryError 会使应用程序处于不希望的和未定义的状态,这可能会在以后导致问题。这使得这种错误很难恢复。
  • 您想完全耗尽内存还是想获得MemoryError?在第一种情况下,您的系统可能会完全崩溃,而您将无法捕捉到它。我可以得到MemoryError 并捕获它的唯一方法是使用最多使用 4GB 内存的 32 位版本的 python。

标签: python python-2.7 testing memory-management out-of-memory


【解决方案1】:

如果你想强制 Python 耗尽内存,无论有多少可用内存,这都会很快发生:

x = [None]
while True:
    x += x

这将使每次迭代时x 的长度加倍,直到失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 2021-08-04
    • 2012-01-25
    • 1970-01-01
    • 2015-09-01
    • 2015-05-18
    相关资源
    最近更新 更多