Je pense qu'il y a des harengs rouges ici. Sur un système informatique plus ancien, je recommanderais de mettre en cache les chaînes et de faire un petit nombre de grosses écritures au lieu d'un grand nombre de petites écritures. Sur les systèmes modernes, la mise en cache disque par défaut est plus que suffisante et il est peu probable que la mise en mémoire tampon supplémentaire soit utile.
Je présume que vous ne désactivez pas la mise en cache ou l'ouverture du fichier pour chaque écriture.
Il est possible qu'il existe un problème avec l'écriture de très gros fichiers, mais ce ne serait pas ma première estimation.
Quelle est la taille du fichier de sortie lorsque vous avez terminé?
Qu'est-ce qui vous fait penser que le fichier est le goulot d'étranglement? Avez-vous des données de profilage?
Est-il possible qu'il y ait une fuite de mémoire? Un code ou des statistiques que vous pouvez publier aideraient dans le diagnostic.
Montrez-nous le code qui remplit le fichier. D'un autre côté, êtes-vous sûr que l'IO est le goulot d'étranglement? – mbq
Si vous échangez les lignes 4211 et 4212 et remplacez 'foo' par' bar' à la ligne 340857, je prédis que votre application sera considérablement plus rapide. – sbi