Je m'intéresse à la lecture et à l'écriture de fichiers textes plutôt imposants (facilement 1-10Go) en C++, et un point qui semble revenir souvent est l'utilisation de fichiers mappés en mémoire (traduction hasardeuse s'il en est …). Cet appel système mmap
semblerai améliorer les performances de lecture/écriture. Comme je veux faire quelque chose qui soit portable, j'ai trouvé un bout de la bibliothèque Boost.iostreams qui semble faire ça, et de manière transparente sur Windows et *nix.
Seulement, je ne trouve aucun exemple d'utilisation sur le net, et la doc n'est pas des plus claire … Les seuls examples que j'ai trouvé me donnaient une segfault lorsque je tentais de les lancer. Donc je fait appel à vous, connaissez-vous par hasard cette bibliothèque et son utilisation, ou bien connaissez-vous un site/tutoriel qui explique ça bien ?
De manière plus théorique, je vois écrit de partout que l'appel à mmap
ajoute le fichier dans "la zone d'adresses mémoire du programme", et qu'il me faut faire attention à la "pagination". Comme j'ai un peu appris l'info sur le tas, je ne vois pas trop de quoi on parle … Là encore, auriez-vous des ressources à me conseiller sur ces sujets ?