我正在尝试追踪这个项目中似乎是内存泄漏的内容。如果脚本运行的时间足够长(而且必须是 - 数据的第一次同步可能需要一两天),它会占用服务器上的所有内存,并最终崩溃。
这是令人困惑的一点 - 我在调试模式下运行应用程序并定期输出memory_get_usage()并在给定数量的请求后停止。 PHP没有报告急剧增加。从开始到结束,以这种方式报告的总内存使用量增加了大约10kb。如果我在我的开发机器(Mac)上观察活动监视器中的进程,它会从大约20mb到30mb。我留下了前一天隔夜运行的完整脚本的副本,当我早上检查时它声称使用了750mb。
在Amazon EC2实例上也会发生同样的事情,脚本会在其中执行此操作。 memory_get_usage()没有报告任何异常 - 但是让脚本保持运行,在顶部,它将位于进程列表的顶部,MEM%将逐渐增加直到... bang。我现在正在运行一个副本 - 它开始时大约7%,现在是37.4%,但是#34; free"记忆力并没有减少。我认为它正在使用缓冲区。
那么当PHP不相信它有一个时,你如何追踪明显的内存泄漏呢?