我的一个脚本需要大内存。可能因为这个我得到了跟随错误
致命错误:内存不足(已分配 42729472)(试图分配32个字节)
我尝试使用ini_set('memory_limit','256M')更改memory_limit;在我的页面顶部,但我仍然遇到同样的问题。我也试过ini_set('memory_limit','512M');但没有运气。
答案 0 :(得分:4)
你有权访问php.ini文件吗?然后在那里更改memory_limit值。
您还应该分析您的脚本。很多数据库事务?他们中的许多人在循环中?很多循环?很多临时变量?巧妙地使用unset可以产生巨大的差异。
也很高兴知道:Performance Considerations和Garbage Collection
修改(您的问题的可能答案memory_limit
与ini_set
无效)
memory_limit integer设置 最大内存量,以字节为单位 允许脚本分配。这个 有助于防止写得不好的脚本 吃掉所有可用的记忆 一台服务器。请注意,没有记忆 limit,将此指令设置为-1。
在PHP 5.2.1之前,为了使用 它必须启用此指令 编译时使用 配置行中的 - enable-memory-limit 。这个编译时标志也是 需要定义功能 memory_get_usage()和 memory_get_peak_usage()之前的 5.2.1。
使用整数时,值为 以字节为单位。速记符号, 如本常见问题所述,也可能是 使用
来源:php.net
答案 1 :(得分:2)
大约42M之后崩溃了,这告诉我PHP解释器没有得到备忘录。在带有ini_set()
输出的测试页中尝试相同的phpinfo()
并查找内存限制。
您可以在php.ini
文件中进行设置吗?
答案 2 :(得分:0)
我之前有similar issue。在我的例子中,它是suhosin补丁,阻止我的脚本获取更多内存。