内存泄漏? memory_get_usage()vs实际进程内存

时间:2014-12-02 10:03:52

标签: php laravel

我的控制台PHP应用程序中可能存在内存泄漏问题。它是使用Laravel框架创建的,使用工匠。运行PHP 5.6.2。它是一个巨大的循环,它将从Web服务收集数据并将其插入到我自己的数据库中,可能大约有300k行。

对于每个循环,我在控制台中打印出内存使用情况。奇怪的是,memory_get_usage()和memory_get_usage(true)报告它使用大约13MB的内存。但是php进程继续使用越来越多的内存。如果我让它运行几个小时,它使用几乎1GB的内存,并且循环继续变慢和变慢。

由于PHP内存限制,它不会终止,即使它远远超过它。

我想弄清楚为什么会发生这种情况以及这实际上是如何运作的。据我了解,memory_get_usage报告我的脚本使用的内存,我写的内容。因此,未设置的变量,清理等应该不是问题所在,对吧?我还尝试每隔约300个条目强制进行垃圾收集,但没有运气。

有没有人有一些关于我如何排除故障的一般提示?也许可以解释为什么进程使用的内存由memory_get_usage函数显示: - )

非常感谢任何帮助。

0 个答案:

没有答案