dans un programme PHP, je séquentiellement lire un tas de fichiers (avec file_get_contents
), gzdecode
de leur, json_decode
le résultat, d'analyser le contenu, de le jeter le plus de loin, et de stocker environ 1% dans un tableau.
Malheureusement, à chaque itération (je traverse sur un tableau contenant les noms de fichiers), il semble y avoir de la mémoire perdue (selon memory_get_peak_usage
, environ 2 à 10 MO à chaque fois). J'ai en double et triplechecked mon code, je ne suis pas stocker unneded données dans la boucle (et les données nécessaires à peine plus d'environ 10 MO au total), mais je suis souvent la réécriture (en fait, des chaînes de caractères dans un tableau). Apparemment, PHP ne libère pas la mémoire correctement, donc l'utilisation de plus en plus de mémoire vive jusqu'à ce qu'il arrive à la limite.
Est-il possible de forcer une collecte des ordures? Ou, au moins, pour savoir où la mémoire est utilisée?
Merci d'avance, Dmitri