PHP Utilisation de la mémoire


Exemple

La limite de mémoire d'exécution de PHP est définie par la directive INI memory_limit . Ce paramètre empêche toute exécution de PHP d'utiliser trop de mémoire, l'épuisant pour d'autres scripts et logiciels système. La limite de mémoire par défaut est 128M et peut être modifiée dans le fichier php.ini ou à l'exécution. Il peut être paramétré pour ne pas avoir de limite, mais cela est généralement considéré comme une mauvaise pratique.

L'utilisation exacte de la mémoire utilisée lors de l'exécution peut être déterminée en appelant memory_get_usage() . Il renvoie le nombre d'octets de mémoire alloués au script en cours d'exécution. Depuis PHP 5.2, il possède un paramètre booléen optionnel pour obtenir la mémoire système totale allouée, contrairement à la mémoire utilisée activement par PHP.

 <?php
 echo memory_get_usage() . "\n";
 // Outputs 350688 (or similar, depending on system and PHP version)

 // Let's use up some RAM
 $array = array_fill(0, 1000, 'abc');

 echo memory_get_usage() . "\n";
 // Outputs 387704

 // Remove the array from memory
 unset($array);

 echo memory_get_usage() . "\n";
 // Outputs 350784

Maintenant, memory_get_usage vous permet d'utiliser la mémoire au moment de son exécution. Entre les appels à cette fonction, vous pouvez allouer et libérer d'autres choses en mémoire. Pour obtenir la quantité maximale de mémoire utilisée jusqu'à un certain point, appelez memory_get_peak_usage() .

<?php
echo memory_get_peak_usage() . "\n";
// 385688
$array = array_fill(0, 1000, 'abc');
echo memory_get_peak_usage() . "\n";
// 422736
unset($array);
echo memory_get_peak_usage() . "\n";
// 422776

Notez que la valeur ne montera ou ne restera pas constante.