我有一个用PHP编写的非常复杂的脚本,它读取许多CSV文件并将内容导入数据库。在某些地方,我不是直接通过INSERT语句,而是通过对象来实现这一点。
我的问题是top(该脚本运行在带有PHP 5.3.2的ubuntu 1004上)显示apache2进程消耗了几GB的内存,而memory_get_usage(true)将保持在250 MB左右。我开始调用gc_collect_cycles(),它表示有时会收集超过100000个周期,但消耗的内存仍然没有减少。在离开函数作用域之前,我开始取消设置变量。
有没有办法追踪内存使用量巨大的原因,更重要的是有没有办法解决它?
您尝试过使用Webgrind吗?
我以前用过它来了解资源消耗情况,你经常可以很快看到哪些电话的成本最高。处理大型应用程序的输出可能需要一些时间,但这可能是值得的。