Maison > Article > développement back-end > Fonctionnalités PHP Mécanisme de récupération de place 3 : Considérations sur les performances
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) !