Bonjour,
Pour une application permettant de générer des fichiers à partir de bases de données, j'ai un problème de mémoire que je n'arrive pas à résoudre. J'ai essayé d'améliorer le plus possible la gestion de la mémoire dans le script mais j'arrive à un point où je ne vois pas ce qui peut générer ce type d'erreur :
Le script utilise principalement une fonction générateur permettant d'extraire des données d'une base de donnée partie par partie et je vide les variables tableaux résultats à chaque boucle, mais après plusieurs dizaines de minutes j'ai ce problème de mémoire vive.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 528384 bytes)
Je ne comprends vraiment pas pourquoi puisqu'à chaque boucle je vide les variables contenant le plus de données :
Ca a amélioré la mémoire disponible, mais lorsque je traite 500 000 lignes par paquet de 1000, j'arrive vers la fin à ce problème de mémoire vive.$array=NULL;
unset($array);
Je ne vois pas l'utilité d'augmenter la taille maximale de mémoire vive puisque normalement le script php devrait se limiter à 200-300 Mo de données utilisées/détruites environ.
Pourriez vous m'indiquer si il existe un moyen sûr de limiter au minimum l'utilisation de la mémoire vive du script PHP ?
Merci.
Partager