2009-07-20 60 views
2

是否有一个操作系统不可知的Perl模块,对进程可以使用的虚拟内存量进行硬限制;例如如果它开始吃掉太多的内存,这个过程会被杀死?我可以用操作系统不可知的方式限制Perl进程使用的内存吗?

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

我以前使用ulimit,但它需要你(AFAIK)有一个额外的启动过程,它是特定于操作系统的。

感谢, 乔恩

回答

1

我不认为Perl可以有它的内存使用情况是真实的还是虚拟的任何意识。但是,如果您从需求中删除真实与虚拟,则可以仅对正在使用的内存设置限制。

Devel::SizeCache::SizeAwareMemoryCache可能会让你更接近一点,或者BSD::Resourcesetrlimit

+0

在shell中`ulimit`的作用正是你的进程中的`setr​​limit`所做的事情,所以只要Windows不是必需的,我会说`BSD :: Resource`是最好的选择。 – ephemient 2009-07-21 01:22:34

相关问题