Specs = CakePHP 2.4.6,PHP 5.3.13,Windows 7 x64,Apache Server 2.4.9。
我一直收到这个错误:
Allowed memory size xxxx exhausted
我已经尝试了所有我能找到的东西,无论我增加多少限制,增加memory_limit
或max_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;数据集!
答案 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函数来处理要存储的数据大小