ホームページ > バックエンド開発 > C++ > C#で行ごとのテキストファイルの読み取りを最適化するにはどうすればよいですか?

C#で行ごとのテキストファイルの読み取りを最適化するにはどうすればよいですか?

DDD
リリース: 2025-01-29 08:34:11
オリジナル
215 人が閲覧しました

How Can I Optimize Line-by-Line Text File Reading in C#?

c#

で行ごとのテキストファイルの読み取りを最適化します この記事では、C#で行ごとにテキストファイルを読み取るための効率的な方法を調査します。 パフォーマンス最適化戦略が分析され、ニーズに最適なアプローチを選択するのに役立ちます。 バッファリングが強化された

ストリームリーダー

メソッドは、構成可能なバッファサイズ(デフォルト1024バイト)を提供します。このバッファーを増やすと、読み取り速度が劇的に向上する可能性があります

StreamReader.ReadLine()file.readlines:効率的なラインイテレーション

<code class="language-csharp">const int BufferSize = 4096; // Increased buffer size for better performance
using (var fileStream = File.OpenRead(fileName))
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, BufferSize)) {
    string line;
    while ((line = streamReader.ReadLine()) != null)
    {
        // Process the line
    }
}</code>
ログイン後にコピー

は、より合理化された、しばしばより速いアプローチを提供します。

file.readalllines:ランダムアクセス、メモリ使用量の増加File.ReadLines()

行へのランダムアクセスが必要な場合は、ファイル全体をメモリにロードします。 これは便利ですが、より多くのメモリを消費するため、非常に大きなファイルにはそれほど適していません。
<code class="language-csharp">foreach (var line in File.ReadLines(fileName))
{
    // Process the line
}</code>
ログイン後にコピー
非効率的なstring.split

を回避します

ファイルのコンテンツ全体から行を解析するには、一般に上記のメソッドよりも効率が低くなります。

File.ReadAllLines()パフォーマンスの考慮事項

特定のアプリケーションとファイルサイズの最適な方法を決定するには、ベンチマークが重要です。
<code class="language-csharp">var lines = File.ReadAllLines(fileName);
for (int i = 0; i < lines.Length; i++)
{
    // Process line at index i
}</code>
ログイン後にコピー
多くの場合、速度とメモリの使用量のバランスが良いことがよくあります。 ただし、

in

を調整すると、特定のシナリオでより良い結果が得られる可能性があります。 選択をするときは、メモリの制約とアクセスパターンを検討してください。

以上がC#で行ごとのテキストファイルの読み取りを最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート