Utilisation de la mémoire pour 'file'
<?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.