Utilisation de la mémoire pour 'file'
Publié le 15/09/2007 PHP
<?php $arr=file("fichier-10M"); echo "Peak : ".memory_get_peak_usage()."\n"; echo "Usage: ".memory_get_usage()."\n"; ?>Le fichier fichier-10M fait 10Mo exactement. Le résultat est :
Peak : 20051900 Usage: 10051816Si la limite mémoire était à 12Mo, le programme plante.
Il est plutôt souhaitable d'utiliser fopen :
<?php $fp=fopen("fichier-10M", "rb"); if ($fp!==FALSE) { while (!feof($fp)) { $arr[]=fread($fp, 4096); } } echo "Peak : ".memory_get_peak_usage()."\n"; echo "Usage: ".memory_get_usage()."\n"; ?>Dans ce contexte, on a :
Peak : 10275828 Usage: 10275872Avec la même limite à 12Mo, le programme fonctionne correctement.