我有一个用PHP编写的非常复杂的脚本,它读入大量CSV文件并将内容导入数据库。在某些地方,我不是直接通过INSERT语句,而是通过对象。
我的问题是top(脚本在带有PHP 5.3.2的ubuntu 10.04上运行)显示apache2进程消耗几GB的内存,而memory_get_usage(true)将保持大约250 MB。我开始调用gc_collect_cycles(),它表示有时会收集超过100000个周期但仍然消耗的内存不会减少。在离开函数范围之前我开始取消设置变量。
有没有办法跟踪大量内存使用的原因,更重要的是一种解决方法?