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 :
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();
		}
résultats :

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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$tab = array();
		while ($tab = mysql_fetch_array($res,MYSQL_NUM)) { 
 
		}
j'ai essayé avec d'autre fonction mysql comme mysql_fetch_object etc... mais cela ne change rien.