Ich weiß, dass Sie in PHP keinen Speicher frei haben müssen. Wird es von Garbage Collector erreicht?Gibt es Garbage Collection in PHP?
48
A
Antwort
47
3
Ja. Es gibt auch eine Sitzungsbereinigung durch den Garbage Collector.
5
PHP hat eine Kombination aus Speicherbereinigung und Referenzzählung. Letzteres ist der Hauptmodus der Speicherverwaltung, wobei der Garbage Collector die Stücke auffängt, die der Ref-Zähler verfehlt (zirkuläre Referenzen). Vor 5.3 hatte php nur ref-zählend, und selbst in 5.3 ist es immer noch so, wie Speicher normalerweise freigegeben wird.
1
Seit 5.3.0 können Sie die Speicherbereinigung erzwingen, indem Sie gc_collect_cycles function
verwenden.
2
seit 5.3.0 gibt es Garbage-Collection-Unterstützung. Bitte überprüfen Sie diesen sehr informativen Artikel von php.net http://php.net/manual/en/features.gc.php
Ein Gotcha nicht in diesem Artikel enthalten ist anonyme Funktionen, erstellt mit create_function(). [Diese unterliegen nicht der Müllabfuhr.] (Http://www.php.net/manual/en/function.create-function.php#70691) –
@Dave Lancea Gute Beobachtung. Ich würde jedoch nur darauf hinweisen, dass Ihr Link auf einen Kommentar aus dem Jahr 2007 zeigt, also ist es 2017 vielleicht nicht mehr so (aber vielleicht ist es so, ich konnte keine weiteren Informationen zu diesem Thema finden). –