Manière optimale de lire un fichier - Shell/Batch - Programmation
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.
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