Introduction :
Le traitement efficace de fichiers texte volumineux (plus de 100 Mo) en C# nécessite une attention particulière. La simple utilisation de StreamReader.ReadToEnd()
peut entraîner des goulots d'étranglement importants en termes de performances. Cet article décrit une approche de lecture fragmentée plus efficace utilisant des flux.
Stratégie de lecture améliorée :
Pour des performances optimales avec des fichiers volumineux, nous recommandons ce qui suit :
BufferedStream
pour emballer le FileStream
. Cette étape cruciale met en cache les données, minimisant ainsi les opérations d'E/S disque.StringBuilder
) au fil de discussion principal une fois terminée.Exploiter BufferedStream :
BufferedStream
accélère considérablement la lecture en mettant en cache les données en mémoire. Ses méthodes Read
et Write
gèrent automatiquement la gestion des tampons.
Optimisation de StringBuilder :
Le prédimensionnement du StringBuilder
avec la longueur de flux connue (si disponible) évite les réallocations répétées, augmentant ainsi encore l'efficacité.
Autres améliorations :
Considérations relatives à la plateforme :
BufferedStream
sont généralement plus prononcés dans .NET 3.x (32 bits) que dans .NET 4.5 (64 bits).BufferedStream
offre des améliorations substantielles des performances.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!