有没有一种方法可以在PHP中动态扩展内存限制?

3

这只是一个一般性的问题。是否有一种方法可以在脚本开始达到已定义的限制时扩展脚本的内存限制?例如,如果memory_limit设置为“32M”,是否有一种方法检查内存使用情况是否接近该限制,并在需要时将限制设置得更高?

感谢您的帮助!


3
参考这个答案 http://stackoverflow.com/a/3858189/ ,我认为你可以在一个else{...}条件语句中添加 ini_set('memory_limit','256M'); 或类似的代码,从而增加内存限制。但我不能保证它一定有效,因为可能需要重新启动。你可以尝试一下 ;-) - Funk Forty Niner
所以我得到了一些赞同 ^ - 看看,有人会回答 ,可能会反咬一口。 - Funk Forty Niner
1
顺便提一下:memory_limit并不意味着您的脚本使用那么多内存,这是它可以使用的最大值。因此,将其设置为您希望它失败的位置即可,动态增加它实际上并没有什么帮助,除了让您的服务器崩溃,因为您没有强制限制。 - cmorrissey
1
我们已经有了答案 v_v_v - Funk Forty Niner
我能说的最好的建议是...在ini_set中使用你拥有的最大内存。ini_set('memory_limit','Set_to_the_Gills_M'); - Funk Forty Niner
显示剩余7条评论
2个回答

1

对于那些正在搜索的人:

从评论中可以看出,答案似乎是没有真正需要这样做。只需将内存限制设置得足够高,脚本就可以运行,而且高估所需的内存限制没有任何不利影响。

请查看问题下面的评论。


0

你也可以尝试使用它来了解你正在使用多少内存。

 $start_memory = memory_get_usage();
 //do some stuff here.
 echo memory_get_usage() - $start_memory;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接