大規模なテキストファイルのC#ストリームの読み取りを最適化する
はじめに:
C#で効率的に大きなテキストファイル(100MBを超える)を処理するには、慎重に検討する必要があります。 単にを使用すると、重要なパフォーマンスボトルネックにつながる可能性があります。 この記事では、ストリームを使用して、より効率的でチャンクされた読書アプローチの概要を説明します。
StreamReader.ReadToEnd()
大きなファイルで最適なパフォーマンスについては、次のことをお勧めします。
を使用して
をラップします。この重要なステップはデータをキャッシュし、ディスクI/O操作を最小限に抑えますBufferedStream
必要に応じて読み取りプロセスを中断できるようにキャンセルメカニズムを含めます。
FileStream
完了時に蓄積されたデータ(StringBuilder
メモリ内でデータをキャッシュすることにより、読み取り値を大幅に加速します。 そのstringbuilderの最適化:
BufferedStream
既知のストリームの長さ(利用可能な場合)でRead
を事前にサイジングすると、繰り返しのリアロケーションが防止され、効率がさらに向上します。
Write
ロード後、ファイルの行のターミネーター文字を特定します
非常に大きなファイルの場合、読み取りと処理のための個別のタスクを備えたプロデューサー消費者パターンを検討し、並列性を最大化します。
StringBuilder
プラットフォームの考慮事項:
以上がストリームを使用してC#で大きなテキストファイルを効率的に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。