我正在使用一个 Python 库(SimpleParse),我似乎正在使用它导致一些失控的递归。当我试图调试它时,它已经让我的电脑崩溃了。
对我来说,对它使用多少内存设置一些限制的最佳方法是什么?
我在想我会用setrlimit编写一个快速的 C 程序来调用 Python,并从那里测试它。
Python 提供了setrlimit()
,因此您可以留在 Python 中。(除非你在 C 中更快乐 :)
需要注意的是,Linux 内核已经很久不支持 RSS 计费了;地址空间会计可能是您最好的选择,但它可能过于严格。(如果程序mmap(2)
只有几 GB,但从不打扰阅读或编写它,那并不重要;rlimits 可能会禁止mmap(2)
,而不是禁止实际使用内存。)
在这里设置递归限制不太可能是一个合理的解决方案。如果库有错误,请报告或修复它。如果您的代码有错误,请修复它。SimpleParse 没有被广泛使用......您可以查看其他解析器选项。由于您没有解释您要解决的真正问题是什么,因此我们几乎无法就替代工具提供建议。