Codeigniter中突然出现PHP内存泄漏

Codeigniter中突然出现PHP内存泄漏,php,codeigniter,memory,out-of-memory,Php,Codeigniter,Memory,Out Of Memory,昨天在编写代码时发生了一些非常奇怪的事情 我正在测试一个新函数,一切都很顺利。没有问题。正在构建json对象,并每次在屏幕上打印以检查在测试方法中成功构建该对象 当我将它实现到代码库中时,它仍然可以正常工作。然后我改变了一个不同的方法,更新了代码以使用这个新方法,并测试了它的相关屏幕,所有的工作都很好 然后突然在重新加载页面时(在看到一切正常后),我得到了一个PHP内存泄漏错误 致命错误:第901行的D:\public_html\genesis\system\core\Common.php中允许

昨天在编写代码时发生了一些非常奇怪的事情

我正在测试一个新函数,一切都很顺利。没有问题。正在构建json对象,并每次在屏幕上打印以检查在测试方法中成功构建该对象

当我将它实现到代码库中时,它仍然可以正常工作。然后我改变了一个不同的方法,更新了代码以使用这个新方法,并测试了它的相关屏幕,所有的工作都很好

然后突然在重新加载页面时(在看到一切正常后),我得到了一个PHP内存泄漏错误

致命错误:第901行的D:\public_html\genesis\system\core\Common.php中允许的内存大小为1342177280字节(尝试分配65488字节)

无论我孤立什么,这都会发生

我甚至将索引页转换为:

public function index() {
        echo 'Hello World';
    //$this->buildPage("login");    
}
它仍然会抛出错误

我目前的内存限制是:

memory_limit=2480M
当时是1280,然后我又加了1200,但仍然没有区别

我的其他网站加载良好,只有这一个。但我似乎根本无法解决它,因为我无法加载任何方法

还有其他人有这个问题吗


有什么想法吗?

好的,我想起来了,下面是我做的和正在发生的事情

1) 首先,我必须安装xDebug。()

2) 然后,我可以看到错误时,试图加载页面

我在Codeigniter中已达到最大允许嵌套限制。这是由于在模型中加载模型并再次加载。我没有意识到跨型号使用是不允许的

因此,我将主要模型的基于类的构造加载移到autoload.php文件中


这会再次加载内容。

通常,当脚本使用太多内存时,会发生这种情况。在PHP中,如果您有一个失去控制的循环,并且每次循环都要创建对象或向数组添加对象,则经常会发生这种情况。检查无限循环。如果这不是问题所在,请尝试通过将对象设置为null(例如$OldVar=null;)来销毁已完成的对象来帮助PHP;。销毁旧物品?像这样的?函数($oldObj){$newObj=new stdClass();$newObj->val1=$oldObj valX;$oldObj=null;返回$newObj;}类似于您所做的事情<代码>但请记住,千万不要在php.ini文件上升级memory_limit变量,或者通过设置ini_set('memory_limit','XXXM');在您正在运行的PHP文件上,XXX是您想要定义的Mb内存量。让应用程序吃掉他想要的内存是疯狂的一步