C# 파일 읽기 성능 최적화: File.ReadLines()와 File.ReadAllLines() 비교
프로그래밍에서는 효율적인 파일 처리가 중요합니다. C#에서는 File.ReadLines()
및 File.ReadAllLines()
메서드 모두 파일 내용을 문자열 배열로 읽을 수 있지만 대용량 파일을 처리할 때 성능이 크게 다릅니다.
File.ReadLines()
File.ReadLines()
은 지연 로드 컬렉션인 IEnumerable<string>
을 반환합니다. 즉, 파일을 한 줄씩 읽으므로 대용량 파일을 작업할 때 더 효율적입니다. foreach
을 사용하면 전체 파일을 메모리에 로드하지 않고도 각 줄을 반복할 수 있습니다.
File.ReadAllLines()
File.ReadAllLines()
은 전체 파일을 한 번에 읽어서 string[]
의 배열을 반환합니다. 대용량 파일의 경우 이 접근 방식은 전체 파일을 메모리에 로드해야 하므로 효율성이 떨어지며, 이로 인해 성능 병목 현상이 발생하거나 메모리 오버플로가 발생할 수도 있습니다.
성능 비교
다음 표에는 File.ReadLines()
과 File.ReadAllLines()
의 주요 성능 차이가 요약되어 있습니다.
方法 | 读取方式 | 大型文件性能 |
---|---|---|
`File.ReadLines()` | 逐行读取 | 更高效 |
`File.ReadAllLines()` | 一次性读取 | 效率较低 |
예
다음 코드 예제에서는 File.ReadLines()
을 사용하여 대용량 텍스트 파일을 처리하는 방법과 File.ReadAllLines()
을 사용하여 작은 텍스트 파일을 처리하는 방법을 보여줍니다.
<code class="language-csharp">// 处理大型文件 string[] lines = File.ReadLines("large.txt").Where(x => x.Contains("keyword")).ToArray(); // 处理小型文件 string[] lines = File.ReadAllLines("small.txt");</code>
결론
대용량 파일의 경우 File.ReadLines()
은 파일을 점진적으로 읽어 더 나은 성능을 제공하므로 더 나은 선택입니다. File.ReadAllLines()
성능 차이가 덜 중요한 작은 파일에는 여전히 작동합니다.
위 내용은 File.ReadLines() 대 File.ReadAllLines(): 언제 최적의 성능을 위해 어느 것을 선택해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!