Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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 允许的内存大小已用尽,但内存\u获取\u峰值\u使用情况表明并非如此_Php_Memory Limit_Question2answer - Fatal编程技术网

Php 允许的内存大小已用尽,但内存\u获取\u峰值\u使用情况表明并非如此

Php 允许的内存大小已用尽,但内存\u获取\u峰值\u使用情况表明并非如此,php,memory-limit,question2answer,Php,Memory Limit,Question2answer,在我的服务器上,出现以下错误: 已耗尽268435456字节的允许内存大小 这发生在一个循环(foreach循环)中,当我使用 memory_get_peak_usage(); 我得到了7254128,这远远不是268435456的精疲力竭 我在多个地方进行了检查,内存使用率没有急剧增加,所以我真的不知道问题出在哪里 同样的脚本在我的本地计算机上运行良好,我在php.ini文件中将内存限制设置为仅16M 下面是导致问题的代码,但我认为它不会真正有用,它来自question2answer开源平台

在我的服务器上,出现以下错误:

已耗尽268435456字节的允许内存大小

这发生在一个循环(foreach循环)中,当我使用

memory_get_peak_usage();
我得到了
7254128
,这远远不是
268435456
的精疲力竭

我在多个地方进行了检查,内存使用率没有急剧增加,所以我真的不知道问题出在哪里

同样的脚本在我的本地计算机上运行良好,我在
php.ini
文件中将内存限制设置为仅
16M

下面是导致问题的代码,但我认为它不会真正有用,它来自question2answer开源平台的插件:

foreach ($badges as $slug => $info) {
    $badge_name=qa_badge_name($slug);
    if(!qa_opt('badge_'.$slug.'_name')) 
            qa_opt('badge_'.$slug.'_name',$badge_name);
    $name = qa_opt('badge_'.$slug.'_name');
}

我强烈怀疑您的问题是由于标准MySQL连接器库中的“错误功能”。从数据库中提取包含“long blob”或“long text”字段的行时。MySQL库没有分配数据所需的确切大小,而是试图分配存储行可能需要的最大大小。i、 e.4G内存

修复此问题的最简单方法是切换到使用MySQL ND连接器,该连接器没有此“功能”

我正在检查循环中的内存使用情况 内存获取峰值使用率();我得到的是7254128,这离 268435456累坏了

这是正确的。内存分配失败,因此峰值内存使用率永远不会显示正在使用的巨大分配


顺便说一句,您应该能够将错误消息跟踪到生成失败内存分配错误的代码行。如果它不是来自SQL获取,那么答案可能是错误的。

。。。。可能是
qa_opt
qa_badge_slug
中的递归失败?我把它放在帖子中,但我认为它不会有用,它来自插件,所以语法是特殊的。我知道代码不干净,它不是我的,但我正在努力让它工作!那么,它不仅可能发生,而且确实发生在
foreach
循环中,不是吗?这可能是一个数据问题和一个逻辑错误。如果您在本地没有遇到这个问题,我会将该数据与服务器上的数据同步,并查看那里发生了什么……好吧,您可以运行xdebug跟踪来查看之前发生了什么,这可能会对它有所帮助。但是上面提到的两个函数中的一个可能会引起麻烦。您在本地和远程使用哪个版本的PHP?