PHP中有没有办法找出对象被引用的位置,以便找到不再需要的过时引用?
一些背景:
我正在调试/优化一个用 PHP 编写的大型系统,试图在运行一些大型批处理作业时减少系统的内存占用。
流程基本上是:
1)设置所有处理所需的一些上下文/对象
2) 对仅与 #1 中设置的对象相关的对象进行 N 次操作,在循环中创建的各个对象之间没有关系/耦合
给定足够大的 N 系统将始终耗尽内存,即使在步骤 #2 中创建的每个对象都应该能够在对该特定对象完成处理后进行垃圾回收。
在步骤 2 中的每次迭代结束时,我正在执行以下操作:
debug_zval_dump($lObj); 回声 gc_collect_cycles();
因此,我看到以下结果:
debug_zval_dump:引用计数(3) gc_collect_cycles:0
以上使我假设由于某种原因,对系统中某个位置保存的对象有一些过时的引用,但我无法仅通过检查代码来找到它们。
非常感谢任何帮助!