繁体   English   中英

Python:为特定函数调用设置内存限制

[英]Python: setting memory limit for a particular function call

在 Python 脚本中,我想为某个函数调用设置内存限制。 我查看了如何限制堆大小 但是,我不想限制整个正在运行的 Python 进程的内存——即在函数调用之前和之后设置内存限制。

有没有办法用给定的内存量进行函数调用,这样内存限制就不会影响调用者?

不,这是不可能的。 Python 不会跟踪哪些函数负责分配新内存,libc 也不会,因此无法仅通过单个函数来限制内存使用。

为了做到这一点,您必须修改 Python,以便您使用一个新函数来分配内存,该函数要求指定 Python 函数负责的内容,以便在该函数超出其限制时拒绝内存分配。

正如@JBernardo 所说,唯一的另一种方法确实是在内存有限的单独进程中执行该函数。

至于沙箱的实现,已经有相对较好的测试实现。 有什么理由不能使用这些吗? 特别是请参阅 PyPy 的沙盒 VMZope 沙盒

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM