Lire le fichier entier en mémoire, puis traiter le contenu en mémoire.
Une ressource de fichier (par exemple un disque dur) est plus efficace lorsque le moteur est maintenu en rotation. Une grande lecture de données est donc plus efficace que 5 lectures de petites quantités de données.
Sur la plupart des plateformes, la mémoire est plus rapide d'accès qu'un fichier. En utilisant cette information, on peut rendre un programme plus efficace en lisant des données dans la mémoire puis en traitant la mémoire. La combinaison des deux techniques donnera une plus grande performance: lire autant de données, en une transaction, dans la mémoire, puis traiter la mémoire.
Certaines personnes déclarent des tableaux volumineux de char
ou unsigned char
(pour les données binaires). D'autres personnes disent à std :: string ou std :: vector de réserver une grande quantité de mémoire, puis de lire les données dans la structure de données. De plus, les lectures de blocs (par exemple, istream::read()
) contournent la plupart des parties lentes des installations de flux C++.
La manière standard n'est-elle pas assez efficace? –
Vous devriez vraiment reconsidérer ce que vous considérez comme "grand". L'estimation est une compétence d'ingénierie. – pmr
Généralement, 5 Mo n'est pas considéré comme grand selon la plate-forme. La plupart des PC peuvent lire un fichier de 5 Mo entièrement en mémoire. –