chunk()方法的代码块如下(用Eloquent调用):
$query->chunk(1000, function ($data) use (&$firstWrite, $fp) {
Log::info("开始:".memory_get_usage());
$data = $data->toArray();
Log::info("结束:".memory_get_usage());
unset($data);
Log::info("usnet 结束:".memory_get_usage());
});
日志
从下往上看
通过日志我们可以分析得出:
- 在将一个“组块”的 Eloquent 模型转为数组的时候
$data = $data->toArray();
内存增加了很多.最后unset的时候又没有释放回初始值.
这样就好了