5
所以我一直在試着用laravel的口頭語言,但我遇到了一個問題。考慮下面的代碼(我的問題的更簡化的版本):Laravel chunking不會減少PHP的內存使用量
$data = DB::connection('mydb')->table('bigdata')
->chunk(200, function($data) {
echo memory_get_usage();
foreach($data as $d) {
Model::create(
array(
'foo' => $d->bar,
...
//etc
));
}
}
所以,當我運行下面的代碼我的記憶輸出是這樣的:
19039816
21490096
23898816
26267640
28670432
31038840
因此,沒有跳進php.ini
和改變memory_limit
值的任何線索爲什麼它不工作?根據文檔:「如果你需要處理很多(千次)雄辯記錄,使用塊命令將允許你不用吃掉所有的RAM」。
我試過unset($data)
之後的foreach函數,但它沒有幫助。我有什麼線索可以利用chunk
或者我誤解了它的作用?
好的,在我們的查詢解決我們的問題之前,稍加挖掘一下'DB :: disableQueryLog()'就可以了。 – tiffanyhwang
當你發現你自己時,查詢記錄正在消耗內存。有了這個說法,你也可以在構造函數中調整單個類的內存限制,如下所示:'ini_set('memory_limit',$ this-> memorylimit);' – nielsiano
使用Laravel調試條獲得更好的洞察力 –