使用Process :: setrlimit限制内存不起作用

时间:2016-08-28 01:38:29

标签: ruby setrlimit

我想在我的测试中限制内存使用量,所以我首先测试了Process::setrlimit的行为,这让我很困惑。这是我的代码:

require 'securerandom'

Process.setrlimit(:AS, 2 << 20)   # 2MB total memory, on Mac OS X
Process.setrlimit(:RSS, 2 << 20)  # 2MB resident memory, on both Mac and Linux

s = SecureRandom.hex(5 << 20)  # hexadecimal string from 5MB random data
puts s.length

我的Linux笔记本电脑中没有任何交换分区,所以我认为RSS等于总内存。

我希望这个程序崩溃,但它没有。它只打印出10485760,这是该字符串的正确长度。为什么不崩溃?如何在程序本身中正确设置内存限制?

0 个答案:

没有答案