我可以以与操作系统无关的方式限制Perl进程使用的内存吗?

时间:2009-07-20 20:09:25

标签: perl memory

是否存在与操作系统无关的Perl模块,它对进程可以使用的虚拟内存量施加了硬性限制;例如如果它开始吃掉太多的记忆就会被杀死?

我看到Apache::SizeLimit,这显然是Apache特有的;和Process::MaxSize,它要求你调用一个检查函数(并且还有一种检查进程大小的hacky方法)。

我过去曾使用ulimit,但它要求你(AFAIK)有额外的启动过程,并且它是特定于操作系统的。

谢谢, 乔恩

1 个答案:

答案 0 :(得分:1)

我认为perl无法了解其内存使用情况是真实的还是虚拟的。但是,如果从需求中删除实际与虚拟,则可以仅对正在使用的内存设置限制。

Devel::SizeCache::SizeAwareMemoryCache可能会让您更近一点,或BSD::Resource setrlimit