Manière optimale de lire un fichier

Manière optimale de lire un fichier - Shell/Batch - Programmation

Marsh Posté le 06-12-2015 à 18:34:04    

Salut'
 
Je lis un fichier de 25000 lignes en faisant un  
while read ligne  
do  
   commande  
done < fichier
 
Je ne trouve pas cela super rapide, plus le fichier est gros plus c'est lent.
Existe il une façon plus optimale?
 
Merci

Reply

Marsh Posté le 06-12-2015 à 18:34:04   

Reply

Marsh Posté le 09-12-2015 à 16:38:25    

Non.
Un programme shell est souvent assez lent. Il faudrait le réécrire en C, par exemple.
 
La lenteur vient très probablement du fait que le programme doit sûrement lire le fichier caractère par caractère pour trouver la fin de chaque ligne.
Or, une lecture caractère par caractère est très consommatrice de temps, car en fait le programme va lire à chaque fois un secteur entier, qui peut faire 512 octets, 4 ko, ou plus, et le masquer ensuite pour ne récupérer qu'un seul caractère. Les lecteurs de disque ont souvent des caches, mais si le fichier se trouve sur le réseau, ce n'est pas sûr que la lecture en cache soit utilisée. Avec un programme C, on peut lire tout le fichier d'un coup en mémoire, si le fichier n'est pas gigantesque, et ensuite travailler caractère par caractère en mémoire.

Reply

Sujets relatifs:

Leave a Replay

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