본문 바로가기

C#

C# 메모리 매핑 파일(Memory-Mapped File) 사용하기

메모리 매핑 파일은 디스크 파일과 메모리를 직접 연결하여 대용량 파일 처리에 효과적인 기술입니다. C#에서는 System.IO.MemoryMappedFiles 네임스페이스를 통해 쉽게 사용할 수 있습니다.

1. 메모리 매핑 파일 생성 및 사용 방법

아래 예제는 기존 파일을 메모리 매핑하고 데이터를 읽는 기본적인 방법입니다.

using System;
using System.IO;
using System.IO.MemoryMappedFiles;

class Program
{
    static void Main()
    {
        string filePath = "example.txt";

        // 메모리 매핑 파일 생성
        using (var mmf = MemoryMappedFile.CreateFromFile(filePath, FileMode.Open))
        {
            // 뷰 생성
            using (var accessor = mmf.CreateViewAccessor())
            {
                byte value = accessor.ReadByte(0); // 첫 바이트 읽기
                Console.WriteLine($"첫 바이트 값: {value}");
            }
        }
    }
}

2. 메모리 매핑 파일의 장점

- 파일 일부만 메모리에 매핑해 효율적 사용이 가능합니다.

- 대용량 파일 처리 시 성능 향상에 유리합니다.

- 프로세스 간 메모리 공유가 가능합니다.

3. 주의사항

- 파일 접근 권한을 적절히 설정해야 합니다.

- 매핑된 메모리 영역을 잘 해제해야 메모리 누수를 방지할 수 있습니다.