Je dois lire en gros fichiers txt (1Go) ligne par ligne, et utiliser fgets() pour le faire. Je cours une boucle while vide et l'exécution prend extrêmement long (30mins) avec 99% d'utilisation du processeur.Utilisation du processeur 99% lors de la lecture d'un gros fichier txt en utilisant fgets() C++
int buffer_size = 30; char buffer [buffer_size]; J'ai fait quelques lectures et apparemment les frais généraux liés à l'analyse de texte provoquent ceci. Donc la question est, est-il un moyen de lire dans un fichier txt tout en évitant cela? Je lis des traces pour un simulateur de réseau, donc chaque ligne a typiquement | Injection_cycle source destination |
Je cherchais depuis un certain temps, donc si quelqu'un a une réponse intelligente à ce que je serais absolument ravi :)
Bienvenue dans Stack Overflow. Veuillez prendre le temps de lire [The Tour] (http://stackoverflow.com/tour) et de consulter le contenu du [Centre d'aide] (http://stackoverflow.com/help/asking) quoi et comment vous pouvez demandez ici. –
"J'ai fait quelques lectures et apparemment les frais généraux liés à l'analyse de texte provoquent cela." - il n'y a pas d'analyse en cours dans le code que vous avez posté. –
Cela ne devrait pas prendre 30 minutes pour lire un fichier de 1 Go de cette façon. Quelque chose ne va pas. (La petite taille de la mémoire tampon n'aide pas, mais cela ne peut pas être tout le problème.) –