gpt4 book ai didi

perl - 什么是强制 Perl 5 在 OS X 上快速耗尽内存的好方法?

转载 作者:IT王子 更新时间:2023-10-28 23:34:36 24 4
gpt4 key购买 nike

我正在尝试测试一个特定条件,只有在 perl 时才会发生有一个 malloc由于没有内存而失败。我要 perl尽快死去。我认为禁食的方法是创建一些巨大的数组,例如

perl -le '$_->[100_000_000_000] = 1 for \(@a, @b, @c, @d); <>'

但是在我的 swap 达到 5 gig 并且没有停止的迹象后我不得不杀死它(我在 OS X 10.6 上)。

我刚刚在 Linux 上测试了它,它很快就死了:

time perl -le '$_->[1_000_000_000] = 1 for \(@a, @b, @c, @d); <>'
Out of memory!

real 0m0.023s
user 0m0.012s
sys 0m0.008s

所以问题似乎出在 OS X 及其 dynamic_pager 上。 .

我刚刚尝试禁用 dynamic_pager

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

并重新启动,但机器完全挂起。我的下一次尝试是更改 com.apple.dynamic_pager.plist配置文件以将 vm 文件写入一个非常小的分区。

最佳答案

在上一个问题“How to simulate memory allocation errors”中,用户 freespace建议使用带有测试用户帐户的 ulimit 来限制可以使用的内存量。这可以满足您的需求,而无需分配大量内存。

关于perl - 什么是强制 Perl 5 在 OS X 上快速耗尽内存的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3644542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com