Pour résumer c'est une vulgaire extraction d'une table envoyé au navigateur en fichier CSV à la volé.
Le code se situe dans une fonction d'une class :
Garbage Colletor enabled (défaut) : OUI
utilisation de la mémoire : 3139.66 Mo
exécution de la requête (environ 200 000 lignes sur 25 colones)
22.28 Mo
jusqu'à là pas de problème
ensuite vient le code suivant :
résultats :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $tab = array(); while ($tab = mysql_fetch_array($res,MYSQL_NUM)) { //echo implode("`|", $tab) . "\n<br />"; echo round(memory_get_usage()/(1024*1024),2)." Mo<br />"; unset($tab); gc_collect_cycles(); }
1er ligne : 22.28 Mo
60164 ligne : 127.85 Mo
j'ai retirer les lignes dans la boucle et juste ce code là pose problème :
j'ai essayé avec d'autre fonction mysql comme mysql_fetch_object etc... mais cela ne change rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $tab = array(); while ($tab = mysql_fetch_array($res,MYSQL_NUM)) { }
Partager