optimisation requete fgets

optimisation requete fgets - PHP - Programmation

Marsh Posté le 01-03-2014 à 13:13:50    

Bonjour.
j'ai de multiples requetes sur des fichiers à partir de PHP
voila le code que tout le monde connait en attaque ligne par ligne

Code :
  1. $handle = fgets($fichier, 2054.....


bon maintenant, si je sais que la longueur maxi de ma ligne ne pourra JAMAIS dépasser 400 + 3 CHR = 403:
quelle serait la différence entre:

Code :
  1. $handle = fgets($fichier, 403.....

et

Code :
  1. $handle = fgets($fichier, 2054.....

si je fais l'opération 1000 fois ?

Reply

Marsh Posté le 01-03-2014 à 13:13:50   

Reply

Marsh Posté le 01-03-2014 à 13:29:11    

Bon, pour ceux que ça intéresse:
J'ai fait 20 fois une boucle avec 100 000 ouvertures d'un fichier de 40 entrées.
Au départ chaque entrée était appelée par un fgets(fichier, suivi du nombre précis d'octets à récupérer:
moyenne de 14 à 15 ms
ensuite j'ai refait la même chose mais avec un fgets(fichier,2000
 
Résultat: idem


---------------
http://www.ypikay.com
Reply

Marsh Posté le 01-03-2014 à 14:08:30    

14-15 ms ça doit correspondre à la latence d'accès en lecture d'un HDD classique + quelques autres traitements.
 
Pour ce qui de préciser le nombre d'octets au fgets, le résultat n'est pas étonnement si l'on sait comment fonctionne la lecture d'un fichier : le fgets / fread s'arrête obligatoirement lorsqu'il trouve le byte EOF.
 
C'est même précisé dans la doc (http://www.php.net/manual/fr/function.fgets.php ) : "Lit jusqu'à la taille length - 1 octet depuis le pointeur de fichier handle, ou bien la fin du fichier, ou une nouvelle ligne (qui est inclue dans la valeur retournée), ou encore un EOF (celui qui arrive en premier). Si aucune longueur n'est fournie, la fonction lira le flux jusqu'à la fin de la ligne."

Reply

Marsh Posté le 01-03-2014 à 14:12:03    

Arffffffffff


---------------
http://www.ypikay.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed