istream vs mappage de la mémoire d'un fichier?

Je suis en train de mapper un fichier dans la mémoire et ensuite d'analyser ligne par ligne - est istream ce que je devrais utiliser?

Est istream le même que l'association d'un fichier de la mémoire sous Windows? J'ai eu des difficultés en essayant de trouver un exemple complet de la cartographie d'un fichier dans la mémoire.

J'ai vu des gens lien mappage de la mémoire d'articles à partir de MSDN, mais si quelqu'un peut recommander un petit (~15 ligne?) exemple je vous en serais très reconnaissant.

Je dois être à la recherche de quelque chose de mal, mais lors de la recherche de "C++ mappage de la mémoire exemple" sur Google, je ne pouvais pas trouver un exemple qui inclus une itération à travers.

Ceux-ci étaient les plus proches des résultats (juste pour les gens de réaliser que je ont regardé):

"je suis en train de mapper un fichier dans la mémoire et analyser ligne par ligne". Pouvez-vous nous dire pourquoi vous voulez à la carte mémoire le fichier? Pourquoi n'est-ce pas l'analyse ligne par ligne (à l'aide, dire, ifstream ou fopen) est-elle suffisante?
purement pour des raisons de performances. J'ai été sous le (faux?) impression qu'il est plus rapide de cartographie de l'ensemble du dossier?
Cela dépend de ce que vous faites avec les données. Si vous l'utilisez pour un bon analyseur qui implémente les retours en arrière, puis les fichiers mappés en mémoire sont uncontestedly plus vite, mais si vous êtes juste de l'itération transmet à travers les données (comme avec de multiples simple std::getline appels), je doute qu'il y aura aucune différence notable. Certainement il n'y a pas de dommage à l'aide d'un fichier mappé en mémoire, sauf si vous êtes faible sur l'espace d'adressage virtuel (probablement un problème dans le code 32 bits avec GO+ taille des fichiers).
mmap-ing, le dossier peut être un peu le plus rapide. BTW, sur Linux, fopen(3) sait à propos de la m modificateur de mode pour mapper le fichier. Cependant, êtes-vous sûr que cela en vaut la peine? Avez-vous référence? Je suppose que vous allez gagner seulement quelques pour cent de la performance. N'est que pour vous?

OriginalL'auteur user997112 | 2012-05-31