tp3 循环使用数组添加操作add方法导致内存不断增加
G('begin');
$model = M('test_data');
$list = M('test_ids')->getField('id',true);
foreach ($list as $k => $v) {
$data = [];
$data['params'] = $this->params;
$temp_arr = $this->post($this->url,$data);
$json_data = json_encode($temp_arr);
$a_data = [];
$a_data['json_data'] = $json_data;
$model->add($a_data);
unset($a_data);
G('end');
echo G('begin','end','m').'kb'.'<br>';
}
代码运行结果:
当我把$model->add()注释掉的时候,结果如下
请问为什么tp3的add方法会导致内存不断增加?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这种情况还是换成SQL语句,直接插入吧。循环中应该尽量避免SQL操作。
底层的trace和日志导致的,关闭debug,修改一下trace配置。
入口文件添加:
https://www.kancloud.cn/manua...
有三种情况下,trace方法会记录日志:
因此如下配置,可以避免trace记录日志:
循环里面的十几次数据库插入操作消耗的啊,还是用批量插入吧
将model放入到foreach的遍历里面,然后unset实例化的model