CakePHP:允许的内存大小耗尽,增加memory_limit没有帮助

时间:2014-07-21 17:52:03

标签: php apache cakephp memory-leaks cakephp-2.4

Specs = CakePHP 2.4.6,PHP 5.3.13,Windows 7 x64,Apache Server 2.4.9。

我一直收到这个错误:

Allowed memory size xxxx exhausted

我已经尝试了所有我能找到的东西,无论我增加多少限制,增加memory_limitmax_execution_time inisde php.ini文件都无济于事。我的Apache服务器已启用openssl(有人说它可能是相关的),也启用了php_pdo_mysql。我正在使用fastCGI for PHP,它没有帮助切换到php5_module!

奇怪的是,它在我的localhost上工作了一段时间而没有在开发服务器上工作,最近它也没有在我的localhost上工作(我开始有时会错误地执行执行时间)< / p>

以下是我正在使用的操作:

public function index() {

    $this->Certificate->recursive = 0; 
    $certificates = $this->Certificate->find('all',         
        array(       
        'conditions' => array('course_id !=' => '1'),       
        'contain' => array(

                         'CertificateStatus.status',
                         'Course.title',
                         'Student.full_name',
                         'User.name'

                 )));
    $this->set(compact('certificates'));
}

关于这个问题可能是什么原因的任何想法?我怎样才能在CakePHP中发现内存泄漏?什么是解决/优化它的解决方案?

**新更新:

限制&#34;字段后的数量&#34;在find()中,在增加httpd内部的一些Fcgid数后,现在我可以获取整个表,但是页面需要5分钟才能完全加载,这在性能方面是失败的!

这与CakePHP缓存有关吗?如果是,有没有办法优化它为这个数量的记录?每个人都告诉我,26,000个文本记录不是&#34;巨大的&#34;数据集!

4 个答案:

答案 0 :(得分:2)

ini_set('memory_limit', '-1'); 

覆盖默认的PHP内存限制。

答案 1 :(得分:2)

试试这段代码:

ini_set('memory_limit', '1024M');

答案 2 :(得分:0)

Indrajeet的回答对我有用。

要改善答案,只需转到app/lib/Cake/I18N/I18N.php并在函数public function _construct()中添加行

ini_set('memory_limit', '1024M');

答案 3 :(得分:0)

    set_time_limit(0);

    ini_set('memory_limit','2048M');

我使用set_time_limit函数来处理mysql过期时间和ini_set函数来处理要存储的数据大小