当前位置:  开发笔记 > 编程语言 > 正文

PHP内存限制

如何解决《PHP内存限制》经验,为你挑选了2个好方法。

在PHP 5.0.4中,如果配置-enable-memory-limit,则忽略memory_limit指令.(它在推荐的php.ini文件中设置为8M,但是文档说它被忽略了.)那么在这种情况下,是否存在每个脚本的内存限制,还是只受系统的限制?

我问,因为我升级到PHP 5.2.8,它允许内存在默认情况下限制.所以现在我实际上必须将值设置为适当的值.推荐的php.ini文件现在设置为128M,但我不知道这是否比默认情况下的5.0.4 更多更少!

我正在升级生产系统,所以我想避免任何重大的行为改变.该文档(搜索"memory_limit的")在这一点上非常混乱.它表示"默认",但我不知道这是否意味着配置文件中设置的默认值,或者禁用内存限制时使用的默认值.



1> 小智..:

PHP中的内存限制器是可选的; 如果你在编译时禁用它,那就完全没有限制了.

在5.0.4中它被禁用,除非你在编译时明确要求它,原因是内存限制器在5.2之前没用,并且没有计算它应该做的很多事情,包括mysql函数之类的东西.它原来从5.2.1现在他们学会了算.

如果有疑问,请将其禁用或确保更新配置文件以使用新的默认值.将它保留在8MB并升级到5.2.8几乎肯定会引起问题.



2> cletus..:

128M非常高。您可能需要它,但我会感到惊讶。

更重要的是,可以在php.ini中将限制设置为全局默认值:

memory_limit = 32M

您还可以在脚本中覆盖它:



您可能会发现只有少数几个需要大量内存的脚本。找到一些舒适的价值(通过测试),然后将其用于需要更多价值的东西。


+1,PHP的垃圾收集器坏了不止一次。由于摆脱超时非常流行,因此重要的是要知道您的代码实际上是对计算机执行的操作。
推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有