mmap () vs read ()

Je suis en train d'écrire un bloc ID3 tag editor en C. les tags ID3 sont généralement au début d'un mp3 fichier encodé, bien que plus âgé (version 1) les balises sont à la fin. L'app est conçu pour accepter un répertoire et cadre de la liste d'identification de la ligne de commande, puis répéter la structure de répertoire de mise à jour tous les tags ID3 qu'il trouve. L'utilisateur peut en outre choisir de supprimer toutes les anciennes (version 1) les balises. Une autre option est de simplement afficher les repères actuels, sans procéder à une mise à jour. Le répertoire peut contenir des fichiers 2 ou 2 millions de dollars. Si l'utilisateur le moyen de mettre à jour les fichiers, j'ai été la planification pour charger tout le fichier en mémoire, effectuer les mises à jour, puis de l'enregistrer (le fichier peut être renommé). Toutefois, si l'utilisateur le seul moyen pour imprimer le des tags ID3, puis en chargeant le fichier entier semble excessif. Après tout, le dossier peut être de 200 mo.

J'ai lu ce fil, qui était perspicace - mmap() par rapport à la lecture de blocs

Donc ma question est, quel est le moyen le plus efficace pour aller à ce sujet -- lire(), mmap() ou une combinaison des deux? Idées de conception de bienvenue.

TIA,

Andrew

Edit: C'est ma compréhension que mmap essentiellement les délégués du chargement d'un fichier dans la mémoire, à la mémoire virtuelle sous-système. Il me semble, la VMM serait hautement optimisé sur la plupart des systèmes, il est essentiel pour les performances du système.

source d'informationauteur J. Andrew Laughlin