Garbage Collection deaktivieren

8

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

    
HyderA 28.07.2011, 11:48
quelle

4 Antworten

11

Das Deaktivieren von Variablen macht nicht Speicher frei! Es entfernt nur den Verweis von der Variablen auf den entsprechenden Wert. Sobald ein Wert eine ref-count von 0 hat, erfasst der GC den Wert und gibt seinen zugewiesenen Speicher frei. Wenn es möglich wäre, den GC vollständig zu deaktivieren, würden Sie Ihren Interpreter (im besten Fall) unterbrechen: Sie werden viele viele nicht referenzierte Daten in Ihrem Speicher haben, die niemals gereinigt werden. Das nennt man "Speicherleck".

Gibt es in PHP eine Speicherbereinigung?

    
KingCrunch 28.07.2011, 11:58
quelle
4

Ich war in einer ähnlichen Situation, in meinem Fall war das Problem, dass Zend Server lief, da cli willkürlich und sehr oft abstürzte. In einem Post, den ich gefunden habe, muss man den "Garbage Collector" deaktivieren

Wie es in anderen Beiträgen heißt, können Sie dies tun, indem Sie zend.enable_gc

deaktivieren

in php.ini

%Vor%

Sie können auch Ihr PHP-Init-Skript ändern oder direkt im CLI ändern,

%Vor%

(sry, um solch einen alten Beitrag wieder zu öffnen) Hoffe das hilft jemandem

    
rxx 15.05.2013 10:47
quelle
2

Sie können den Garbage Collector mit

deaktivieren
  • gc_disable - Deaktiviert den kreisförmigen Referenzsammler

oder über die Einstellung ini:

Die Verwendung von unset gibt jedoch keinen Speicher frei. Es markiert nur Variablen für den GC, um afaik zu sammeln. Weitere Informationen finden Sie im Kapitel Garbage Collection im PHP-Handbuch.

    
Gordon 28.07.2011 11:50
quelle
1

Quelle: php.net :

%Vor%     
dave 28.07.2011 11:53
quelle

Tags und Links