xit*_*ium 48
查看resource.setrlimit().它只能在Unix系统上运行,但它似乎可能是您正在寻找的,因为您可以使用resource.RLIMIT_DATA参数为进程和进程的子进程选择最大堆大小.
编辑:添加一个例子:
import resource
rsrc = resource.RLIMIT_DATA
soft, hard = resource.getrlimit(rsrc)
print 'Soft limit starts as :', soft
resource.setrlimit(rsrc, (1024, hard)) #limit to one kilobyte
soft, hard = resource.getrlimit(rsrc)
print 'Soft limit changed to :', soft
Run Code Online (Sandbox Code Playgroud)
我不确定你的用例是什么,但是你可能需要使用resouce.RLIMIT_STACK来限制堆栈的大小.超过此限制将向您的进程发送SIGSEGV信号,并且为了处理它,您将需要使用setrlimit Linux 联机帮助页中所述的备用信号堆栈.我不确定sigaltstack是否在python中实现,所以如果你想要从越过这个边界恢复,这可能会很困难.