Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Funktionen Garbage Collection-Mechanismus 3 – Leistungsüberlegungen

PHP-Funktionen Garbage Collection-Mechanismus 3 – Leistungsüberlegungen

黄舟
黄舟Original
2017-03-14 17:06:231335Durchsuche

Im vorherigen Abschnitt haben wir kurz erwähnt, dass das Recycling möglicherweise einen leichten Einfluss auf die Leistung hat, dies gilt jedoch nur beim Vergleich von PHP 5.2 mit PHP 5.3. Obwohl die Protokollierung in PHP 5.2 langsamer sein kann als gar keine Protokollierung, reduzieren andere Änderungen an der PHP-Laufzeit in PHP 5.3 diesen Leistungseinbruch.
Hier gibt es zwei Hauptbereiche, die einen Einfluss auf die Leistung haben. Das erste ist die Einsparung von Speicherplatz und das andere die Erhöhung der Ausführungszeit (Laufzeitverzögerung), wenn der Garbage-Collection-Mechanismus eine Speicherbereinigung durchführt. Wir werden uns beide Bereiche ansehen.
Speicherplatz sparen
Erstens besteht der ganze Grund für die Implementierung eines Garbage-Collection-Mechanismus darin, Speicherbedarf zu sparen, indem zirkulär referenzierte Variablen bereinigt werden, sobald die Voraussetzungen erfüllt sind. Bei der PHP-Ausführung wird die Garbage Collection durchgeführt, sobald der Root-Puffer voll ist oder die Funktion gc_collect_cycles() aufgerufen wird. In der Abbildung unten wird die Speichernutzung der folgenden Skripte in PHP 5.2- und PHP 5.3-Umgebungen gezeigt, mit Ausnahme des Grundspeichers, der von PHP selbst beim Start des Skripts belegt wird.
Beispiel Nr. 1 Beispiel für die Speichernutzung

<?php  
    class Foo  
    {  
        public $var = '3.1415962654';  
    }  
  
    $baseMemory = memory_get_usage();  
  
    for ( $i = 0; $i <= 100000; $i++ )  
    {  
        $a = new Foo;  
        $a->self = $a;  
        if ( $i % 500 === 0 )  
        {  
            echo sprintf( '%8d: ', $i ), memory_get_usage() - $baseMemory, "\n";  
        }  
    }  
?>

Das Obige ist der Inhalt von PHP Features Garbage Collection Mechanism 3 – Leistungsüberlegungen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn