2009-11-14 4 views

Antwort

47

Ja gibt es, here ist ein schöner Artikel beschreibt seine Fallstricke. In PHP> 5.3.0 gibt es auch die gc_enable Funktion.

+5

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) –

+0

@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). –

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.