禁用垃圾收集

时间:2011-07-28 11:48:19

标签: php garbage-collection

如何为长时间运行的php cli脚本禁用垃圾回收?我正在处理脚本中未设置的变量。

4 个答案:

答案 0 :(得分:11)

取消设置变量可用内存!它只是将变量的引用移到相应的值。一旦任何值的引用计数为0,GC就会收集该值并释放其分配的内存。如果可以完全禁用GC,你将破坏你的解释器(在最好的情况下):你的内存中会有许多未引用的数据,永远不会被清除。多数民众赞成称“内存泄漏”。

Is there garbage collection in PHP?

答案 1 :(得分:4)

我处于类似的情况,在我的情况下,问题是 Zend Server 正在运行,因为cli是任意崩溃的,并且经常发生。在我发现的一篇文章中,一种解决这个问题的方法涉及禁用“垃圾收集器”

正如其他帖子所说,您可以通过禁用zend.enable_gc来实现此目的

php.ini中的

zend.enable_gc = Off

您也可以修改您的Php init脚本,或直接在cli中更改

$ php -d zend.enable_gc=0 your_script.php

(重新打开这么老的帖子) 希望这有助于某人

答案 2 :(得分:2)

您可以使用

禁用垃圾收集器

或通过ini设置:

但是,使用unset不会释放内存。它只标记GC收集afaik的变量。请参阅Garbage Collection in the PHP Manual for details.

一章

答案 3 :(得分:1)

来源:php.net

Besides changing the zend.enable_gc configuration setting, it is also possible to turn the garbage collecting mechanism on and off by calling gc_enable() or gc_disable() respectively.