ホームページ > バックエンド開発 > Golang > Go ファイル内の行を効率的にカウントするにはどうすればよいですか?

Go ファイル内の行を効率的にカウントするにはどうすればよいですか?

DDD
リリース: 2025-01-04 16:18:39
オリジナル
947 人が閲覧しました

How Can I Efficiently Count Lines in a Go File?

Golang で行数を効率的に決定する

Golang でファイルを操作するときの一般的なタスクの 1 つは、ファイルに含まれる行数を決定することです。ファイル全体をループするのは簡単な方法ですが、非効率になる可能性があります。より効率的な解決策には、bytes.Count 関数の使用が含まれます。

bytes.Count 関数を使用すると、バイト スライス内のバイト シーケンスの出現をカウントできます。この例では、ファイルのバイト データ内の改行文字の数 (n) をカウントしたいと考えています。最適化された行カウンターは次のようになります。

func lineCounter(r io.Reader) (int, error) {
    buf := make([]byte, 32*1024) // Larger buffer for faster performance
    count := 0
    lineSep := []byte{'\n'}

    for {
        c, err := r.Read(buf)
        count += bytes.Count(buf[:c], lineSep)

        switch {
        case err == io.EOF:
            return count, nil

        case err != nil:
            return count, err
        }
    }
}
ログイン後にコピー

このアプローチでは、bytes.Count 関数を利用し、バッファー サイズを最適化することで、ファイルのループ処理に伴うオーバーヘッドが最小限に抑えられ、パフォーマンスが大幅に向上します。

以上がGo ファイル内の行を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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