다음을 통해 공유


Windows의 영구 메모리 프로그래밍 - NVML 통합

PM(영구 메모리) 기술은 비휘발성 미디어에 대한 바이트 수준 액세스를 제공하는 동시에 데이터를 저장하거나 검색하는 대기 시간을 크게 줄입니다. 시스템의 메모리와 기존 스토리지 간에 새 계층을 만듭니다. 영구 매체에 대한 빠른 쓰기로 종속되거나 스케일링되는 모든 프로그램은 PM의 이점을 누릴 수 있습니다.

이 문서의 목적은 쉽게 사용할 수 있도록 NVML(비휘발성 메모리 라이브러리)을 Visual Studio 프로젝트에 통합하는 방법을 간략하게 설명하기 위한 것입니다.

참고

영구 메모리를 SCM(스토리지 클래스 메모리)이라고도 합니다.

 

PM 및 NVML

영구 메모리에 대한 첫 번째 지원은 Windows Server 2016 및 Windows 10 1주년 업데이트(1607)에서 도입되었습니다. 간략한 개요를 보려면 다음 두 Channel9 비디오를 검사.

개발자가 영구 메모리 제공 혜택을 활용할 수 있도록 Microsoft는 NVML(비휘발성 메모리 라이브러리)을 Windows로 가져오는 노력에도 기여했습니다. 이 라이브러리는 애플리케이션을 영구 메모리로 인식할 수 있는 다양한 도구를 제공합니다. 예를 들어 매우 빠른 조회 및 저장소를 위해 PM 인식 키-값 저장소를 쉽게 만들 수 있는 코드가 포함되어 있습니다. NVM 라이브러리에서 샘플을 포함하여 NVML에 대한 자세한 정보를 찾을 수 있습니다.

NVML을 Visual Studio 프로젝트에 통합

  1. NVML 라이브러리 파일 및 헤더 다운로드
  1. 라이브러리 파일과 헤더를 선택한 디렉터리에 배치합니다(예: "C:\NVML\lib" 및 "C:\NVML\inc").

  2. 다음과 같이 프로젝트를 구성합니다.

  • Visual Studio 프로젝트를 열고 "솔루션 탐색기"에서 프로젝트 이름을 마우스 오른쪽 단추로 클릭합니다.
  • 결과 팝업의 아래쪽에서 프로젝트의 설정 창을 엽니다.
  • "구성 속성 -> C/C++"로 이동하여 헤더(C:\NVML\inc)를 저장한 폴더를 "추가 포함 디렉터리" 필드에 추가합니다.
  • 다음으로 "구성 속성 -> 링커"로 이동하고 라이브러리(C:\NVML\lib)를 저장한 폴더를 "추가 라이브러리 디렉터리" 필드에 추가합니다.
  1. 다음으로, Windows Server 2016 또는 Windows 10 1주년 업데이트를 위해 프로젝트를 대상으로 지정해야 합니다.
  • "구성 속성 -> 일반"으로 이동하고 "대상 플랫폼 버전" 필드를 "10.0.14393.0"으로 설정하고
  • "구성 속성 -> C/C++"로 이동하여 "전처리기" 필드에 "NTDDI_VERSION=NTDDI_WIN10_RS1;"을 추가합니다.
  1. 코드에 헤더를 포함하고 필요한 라이브러리에 연결
  • 이 시점에서 다른 헤더 파일과 마찬가지로 코드에서 사용하려는 헤더 파일을 간단히 포함할 수 있습니다. 예를 들어 libpmem을 사용하려면 다음을 수행합니다.
    • "#include <libpmem.h>"를 추가하고
    • "구성 속성 - 링커 -> 입력 ->> 추가 종속성"에 "libpmem.lib"를 추가합니다.

이 시점에서 코드에서 직접 라이브러리의 함수를 호출하고 활용할 준비가 된 것입니다.