.NET에서 대용량 텍스트 파일을 효율적으로 읽기
대량 텍스트 파일을 처리할 때는 한 줄씩 읽는 성능이 중요합니다. 이 문서에서는 .NET에서 1GB 텍스트 파일을 읽는 최적의 접근 방식에 대해 설명합니다.
StreamReader 사용
.NET에서 텍스트 파일을 읽는 데 널리 사용되는 방법은 StreamReader입니다. .ReadLine. 그러나 전체 파일을 메모리로 읽어 들이기 때문에 대용량 파일에 가장 적합한 접근 방식은 아니며, 이는 리소스 집약적일 수 있습니다.
MemoryMappedFiles for Large Files
In .NET 4.0 이상에서는 MemoryMappedFile 사용을 고려하세요. 이 클래스는 대용량 파일을 효율적으로 처리하기 위해 특별히 설계되었습니다. 이를 통해 메모리 매핑된 파일을 생성할 수 있으며, 이를 통해 파일의 일부를 메모리에서 액세스할 수 있습니다. 이렇게 하면 전체 파일을 메모리로 읽는 오버헤드가 방지되어 성능이 크게 향상됩니다.
코드 샘플
다음 코드는 다음을 사용하여 대용량 텍스트 파일을 읽는 방법을 보여줍니다. MemoryMappedFile:
using System.IO.MemoryMappedFiles; // Create a memory-mapped file object MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(filePath, FileMode.Open, "MyMappedFile"); // Create a memory-mapped view to the file contents MemoryMappedViewAccessor view = mmf.CreateViewAccessor(); // Read the file line by line using a byte array byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = view.Read(buffer, 0, buffer.Length)) != 0) { // Convert the buffer to a string string line = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead); // Process the line as needed }
결론
StreamReader.ReadLine은 작은 텍스트 파일에는 충분하지만 MemoryMappedFiles는 대용량 파일에 훨씬 더 나은 성능을 제공합니다. 전체 파일을 메모리에 로드하는 오버헤드를 방지함으로써 더 빠르고 효율적인 처리가 가능합니다.
위 내용은 .NET에서 대용량 텍스트 파일을 효율적으로 읽으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!