Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
了解php“;“内存不足”;错误_Php_Out Of Memory - Fatal编程技术网

了解php“;“内存不足”;错误

了解php“;“内存不足”;错误,php,out-of-memory,Php,Out Of Memory,我可以找到很多关于如何克服内存不足错误的教程。解决方案是:在php.ini或.htaccess中访问-多么令人惊讶 我实际上不理解错误消息: 致命错误:内存不足(已分配32016932)(尝试分配25152字节) “Allocated 32016932”表示已按中的方式分配32MB—PHP脚本是否使用32MB?尝试分配25152,表示尝试分配另一个25KB,但脚本失败,因为已达到最大值(32MB?) 从这个错误消息中,除了我“内存不足”之外,我还能告诉你什么呢?就像你理解的那样 该限制可能设置为

我可以找到很多关于如何克服内存不足错误的教程。解决方案是:在
php.ini
.htaccess
中访问-多么令人惊讶

我实际上不理解错误消息:

致命错误:内存不足(已分配32016932)(尝试分配25152字节)

“Allocated 32016932”表示已按中的方式分配32MB—PHP脚本是否使用32MB?尝试分配25152,表示尝试分配另一个25KB,但脚本失败,因为已达到最大值(32MB?)


从这个错误消息中,除了我“内存不足”之外,我还能告诉你什么呢?

就像你理解的那样

该限制可能设置为32MB,您已经分配了32016932个字节,当php试图再分配25152个字节时,超出了该限制,因此会显示错误消息

您可能可以在日志中或屏幕上的错误消息附近看到错误分配发生的行


祝你好运找到罪犯。

我总是这样解释:

Fatal error: Out of memory ([currently] allocated 32016932) (tried to allocate [additional] 25152 bytes)

但如果有一个可靠的解释,这是一个好问题。

通常,如果你得到了这一点,它表明代码中的某个地方存在无限循环。这并不是为了解决错误-我知道我得到了错误,因为我试图处理3MB JPG-对我的共享托管帐户来说太多了-我只是想了解错误;-)我认为说它表示一个无限循环是不公平的。无限循环是可以使用比PHP分配的内存更多的无限方法之一。不,它并不总是无限循环。当我尝试上传大文件或在PHP脚本中使用这些服务器端时(例如CMS系统中的模块/扩展),我会多次遇到这种情况。不一定是无限循环,而是宿主系统的限制。@MatejB您是对的,但据我所知,问题是您可以从该消息中得到什么,不幸的是,这就是所有的问题get@MatejB还有坏人;)[朝你的方向看]。。。。不,我认为这是一个完全正确的问题,我自己认为错误信息可以更清楚一点,特别是当我早就开始使用PHP时,我记得它让我困惑了不止一次。关于如何跟踪和处理内存泄漏的问题是另一回事matter@MatejB嗯,不是我的电话,但我想它仍然算作“进一步阅读”?;)除了在同一台服务器和同一个设置上,它经常间歇性地给出非常不同的
分配的xxxxxxxx
值。@NoBugs是的,只要当前分配的+额外分配的大于允许的内存,它就会失败。这实际上取决于应用程序在任何给定时刻所做的事情。此外,您可能不知道的所有事情都会影响此值。例如,php加载的不同大小的外部资源(来自apc的缓存,来自db的数据集)等等。我喜欢这个答案。我还想补充一点,额外的分配并不表明PHP可能需要什么来完成上述操作,而是在崩溃时超出了限制要求了什么。