Maison  >  Article  >  développement back-end  >  Fonctionnalités PHP Mécanisme de récupération de place 3 : Considérations sur les performances

Fonctionnalités PHP Mécanisme de récupération de place 3 : Considérations sur les performances

黄舟
黄舟original
2017-03-14 17:06:231311parcourir

Dans la section précédente, nous avons brièvement mentionné que le recyclage peut avoir un léger impact sur les performances, mais ceci uniquement en comparant PHP 5.2 avec PHP 5.3. Bien que la journalisation puisse être plus lente que l'absence de journalisation du tout dans PHP 5.2, d'autres modifications apportées au runtime PHP dans PHP 5.3 réduisent cette pénalité de performances.
Il y a ici deux domaines principaux qui ont un impact sur les performances. Le premier est l'économie d'espace mémoire, et l'autre est l'augmentation du temps d'exécution (délai d'exécution) lorsque le mécanisme de garbage collection effectue un nettoyage de la mémoire. Nous examinerons les deux domaines.
Économie d'espace mémoire
Tout d’abord, la raison d’être de la mise en œuvre d’un mécanisme de récupération de place est d’économiser l’empreinte mémoire en nettoyant les variables référencées de manière circulaire une fois les conditions préalables remplies. Dans l'exécution PHP, le garbage collection est effectué une fois que le tampon racine est plein ou que la fonction gc_collect_cycles() est appelée. Dans la figure ci-dessous, l'utilisation de la mémoire des scripts suivants dans les environnements PHP 5.2 et PHP 5.3 est affichée, à l'exclusion de la mémoire de base occupée par PHP lui-même au démarrage du script.
Exemple n°1 Exemple d'utilisation de la mémoire

<?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";  
        }  
    }  
?>

Ce qui précède est le contenu du mécanisme de récupération de place des fonctionnalités PHP 3 - Considérations sur les performances. Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn