9 Stimmen

Garbage Collection deaktivieren

Wie deaktiviere ich die Garbage Collection für ein lang laufendes php cli-Skript? Ich behandle das Zurücksetzen von Variablen im Skript.

12voto

KingCrunch Punkte 124545

Das Zurücksetzen von Variablen bewirkt nicht freier Speicher! Es wird lediglich der Verweis von der Variablen auf den entsprechenden Wert entfernt. Sobald ein Wert einen ref-count von 0 sammelt der GC den Wert ein und gibt den ihm zugewiesenen Speicher frei. Wenn es möglich wäre, die GC vollständig zu deaktivieren, würden Sie Ihren Interpreter (im besten Fall) zerstören: Sie werden viele nicht referenzierte Daten in Ihrem Speicher haben, die nie bereinigt werden. Das nennt man "Speicherleck".

Gibt es eine Garbage Collection in PHP?

7voto

user9869932 Punkte 5353

In meinem Fall hing das Problem mit dem Zend-Server läuft als cli -- Es stürzte oft und willkürlich ab. Im Internet fand ich etwas über die Deaktivierung des 'Garbage Collectors'

Um dies zu tun,

in der Datei php.ini

zend.enable_gc = Off

Sie kann auch direkt in der Klientel geändert werden

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

2voto

Gordon Punkte 304254

Sie können den Garbage Collector deaktivieren mit

oder über die Ini-Einstellung:

Allerdings ist die Verwendung von unset gibt keinen Speicher frei. Es markiert nur Variablen für die GC zu sammeln afaik. Siehe das Kapitel über Garbage Collection im PHP Manual für Details.

2voto

dave Punkte 2151

Quelle: 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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X