如何分析并解决Yii2框架脚本运行中的内存泄漏问题?
- 内容介绍
- 相关推荐
本文共计732个文字,预计阅读时间需要3分钟。
在处理`edu_ocr_img`表格归档时,每跑几万条数据,PHP会报内存耗尽错误。经代码追踪发现,问题出在插入数据时的操作。
现象
在跑 edu_ocr_img 表的归档时,每跑几万个数据,都会报一次内存耗尽
PHP Fatal error: Allowed memory size of 134217728 bytesexhausted (tried toallocate 135168 bytes)
跟踪代码发现,是在插入时以下代码造成的:
EduOCRTaskBackup::getDb()->createCommand()->batchInsert(EduOCRTaskBackup::tableName(), $fields, $data)->execute();
execute 之后会造成使用内存涨上去,并且在之后 unset 所有变量内存也会有一部分不会删除,直到内存耗尽。
本文共计732个文字,预计阅读时间需要3分钟。
在处理`edu_ocr_img`表格归档时,每跑几万条数据,PHP会报内存耗尽错误。经代码追踪发现,问题出在插入数据时的操作。
现象
在跑 edu_ocr_img 表的归档时,每跑几万个数据,都会报一次内存耗尽
PHP Fatal error: Allowed memory size of 134217728 bytesexhausted (tried toallocate 135168 bytes)
跟踪代码发现,是在插入时以下代码造成的:
EduOCRTaskBackup::getDb()->createCommand()->batchInsert(EduOCRTaskBackup::tableName(), $fields, $data)->execute();
execute 之后会造成使用内存涨上去,并且在之后 unset 所有变量内存也会有一部分不会删除,直到内存耗尽。

