致命错误:X:\wamp\www\xxx 内存不足(已分配 1134559232)(试图分配 32768 字节)
Posted
技术标签:
【中文标题】致命错误:X:\\wamp\\www\\xxx 内存不足(已分配 1134559232)(试图分配 32768 字节)【英文标题】:Fatal error: Out of memory (allocated 1134559232) (tried to allocate 32768 bytes) in X:\wamp\www\xxx致命错误:X:\wamp\www\xxx 内存不足(已分配 1134559232)(试图分配 32768 字节) 【发布时间】:2014-05-27 19:44:27 【问题描述】:我在我的个人 PC 上的本地主机上使用 WAMP 服务器(32 位)。我有一个大(非常大)多维数组,它通过读取包含长句子的 CSV 文件(CSV 文件包含 20,000 行信息)来获取其信息。问题是在进行一些计算时出现以下错误:
致命错误:内存不足(已分配 1134559232)(试图分配 32768 字节)在 x:\wamp\www\xxx
我尝试了不同的解决方案,例如增加 upload_max_filesize
、post_max_size
、max_file_uploads
和 memory_limit
或在 php.ini 中或在我的脚本开始时将其设置为 -1,但没有人工作。请帮助我,请不要让我重新设计我的代码或更改 WAMP 的版本,由于某些原因这是不可能的。非常感谢。 :)
【问题讨论】:
更改php.ini中的限制后是否重启了apache? 假设您更改了 php.ini 中的memory_limit
设置并重新启动了 apache 服务,您是否确保更新了正确的 php.ini 文件? (有两种,一种用于 HTTP 服务,一种用于命令行界面。)
我检查了 phpinfo(),它显示 memory_limit 设置为 -1,所以看来我已经更新了正确的。我重新启动了apache,仍然没有变化:(
看看这个帖子是否有帮助:***.com/questions/4399138/…
但我也遇到了我们在 Hostgator 共享服务器中托管的相同错误,我该如何访问这些文件
【参考方案1】:
将此行放在代码的开头:
ini_set("memory_limit", -1);
PHP手册中对memory_limit
的描述如下:
这将设置允许脚本分配的最大内存量(以字节为单位)。这有助于防止编写不佳的脚本耗尽服务器上的所有可用内存。请注意,要没有内存限制,请将此指令设置为 -1。
在 PHP 5.2.1 之前,为了使用该指令,必须在编译时通过在配置行中使用 --enable-memory-limit 来启用它。在 5.2.1 之前定义函数 memory_get_usage() 和 memory_get_peak_usage() 时也需要此编译时标志。
当使用integer 时,该值以字节为单位。也可以使用this FAQ 中描述的速记符号。
我不知道是什么让他们如此自信,以至于只有写得不好的脚本需要调整这个设置,但我希望这个简短的介绍无论如何都能满足你的需要。
【讨论】:
谢谢。增加memory_limit或设置为-1无助于解决问题,【参考方案2】:不是这些设置,而是memory_limit
,PHP 脚本可以消耗的最大内存量。但是,在任意增加这个设置之前,请确保您的服务器有足够的资源。
【讨论】:
谢谢。增加memory_limit或设置为-1无助于解决问题, 您是否完全看到相同数字的相同错误?如果是这样,那么您的更改有问题。创建一个包含phpinfo();
的脚本,并查看它对memory_limit
的说明以及您的php.ini 文件的位置。同时重新启动 apache 以获取更改
我检查了 phpinfo()
并显示 memory_limit
设置为 -1 。而且我在错误中没有看到完全相同的数字。我重新启动了apache,仍然没有变化:(
你的 PHP 版本是多少?请参阅@Sharanya-Dutta 的答案中关于需要将其编译到 PHP pre 5.2.1 中的注释
是的,我看到了,我的 PHP 版本是 5.4.16【参考方案3】:
我终于找到了解决办法。我发现当 PHP 收集垃圾快满时,没有办法释放它。 Unset
和 gc_collect_cycles()
也无效。唯一的方法是在不同的代码部分使用 Function
。就我而言,我在 for 循环中有一个大脚本,所以我将所有代码复制到一个函数中,并在我的循环中调用该函数。每次功能安静时,内存都会释放。您可以通过在函数中添加一次memory_get_usage()
来测试它,然后在函数中添加一次以查看差异。
【讨论】:
你能帮我解决我的问题吗? ***.com/questions/34560732/…以上是关于致命错误:X:\wamp\www\xxx 内存不足(已分配 1134559232)(试图分配 32768 字节)的主要内容,如果未能解决你的问题,请参考以下文章
致命错误:使用任何“npm”命令时 JavaScript 堆内存不足
处理内存不足后返回的 Angular API 致命错误处理程序
致命错误:内存不足 Zend 错误 / PhpMyAdmin
PHP致命错误:内存不足(分配80740352)(试图分配12352字节)