> 백엔드 개발 > Golang > Go 파일의 줄 수를 어떻게 효율적으로 계산할 수 있나요?

Go 파일의 줄 수를 어떻게 효율적으로 계산할 수 있나요?

DDD
풀어 주다: 2025-01-04 16:18:39
원래의
948명이 탐색했습니다.

How Can I Efficiently Count Lines in a Go File?

Golang에서 효율적으로 줄 수 결정

Golang에서 파일 작업을 할 때 일반적인 작업 중 하나는 파일에 포함된 줄 수를 결정하는 것입니다. 전체 파일을 반복하는 것은 간단한 접근 방식이지만 비효율적일 수 있습니다. 보다 효율적인 솔루션은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿