天天看点

记一次laravel 内存泄漏

先说一下背景

计划任务跑laravel脚本,结果发现内存蹭蹭的上涨,很快爆内存不够用错误,看了下数据大概3万左右

脚本会循环执行数据库操作

先上一张内存使用的图,随着循环执行,内存一直不释放,直到爆出内存不够用的错误

使用  memory_get_usage() 获取程序执行内存

记一次laravel 内存泄漏

经过各种排查,各种删除变量,还是没用,最后终于排查出来是因为  DB::connection()->enableQueryLog(); 这货引起的,把它去掉以后,程序正常执行,内存没有再泄漏

记一次laravel 内存泄漏

在laravel的github issue里面,也有人问过同样的问题,还是需要多看官方文档和issue,不过更重要的是要学会分析排查问题的方式和方法,调试工具 xdebug 和 tideways_xhprof 要学会利用起来