PHP:循环中存在一些内存问题
我有一个类似于以下内容的代码段:
while (true) {
$myObject = new Class();
$myOtherObject = $myObject->getSomeOtherObj();
...
$myArray = [1, 2, 3];
...
sleep(1); //Sleep at the end, to save CPU.
}
这个代码片段应该作为守护进程服务运行,但我在制作这个工作时遇到了很多麻烦。
问题:每次迭代都会增加进程内存使用量。就好像在每次新的迭代中,都会实例化一个新的迭代,但前一个迭代仍然在内存中分配,等等。$myObject
我试过:
- 到循环末尾的所有变量(紧挨着 )。
unset
sleep()
- 将所有变量设置为 。
null
- 将它们封装在单独的函数(
while (true) { doThis(); }
) - 手动呼叫
gc_collect_cycles()
这些都不能减少内存使用率。
我不知道如何强制释放所有的记忆。