Yii2框架运行脚本时如何有效避免和解决内存泄漏问题?

2026-04-01 08:140阅读0评论SEO资源
  • 内容介绍
  • 相关推荐

本文共计767个文字,预计阅读时间需要4分钟。

Yii2框架运行脚本时如何有效避免和解决内存泄漏问题?

在处理`edu_ocr_img`表的归档时,每次归档数万条数据时,都会出现内存耗尽错误。错误信息显示PHP允许的内存大小已用尽(限制为134217728字节),尝试分配135168字节。跟踪代码发现,问题出在插入数据时以下代编码段:`...`。

现象

在跑 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 所有变量内存也会有一部分不会删除,直到内存耗尽。

阅读全文

本文共计767个文字,预计阅读时间需要4分钟。

Yii2框架运行脚本时如何有效避免和解决内存泄漏问题?

在处理`edu_ocr_img`表的归档时,每次归档数万条数据时,都会出现内存耗尽错误。错误信息显示PHP允许的内存大小已用尽(限制为134217728字节),尝试分配135168字节。跟踪代码发现,问题出在插入数据时以下代编码段:`...`。

现象

在跑 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 所有变量内存也会有一部分不会删除,直到内存耗尽。

阅读全文