Freigeben über


Programmierung des beständigen Speichers in Windows – NVML-Integration

Die Technologie für beständigen Arbeitsspeicher (PERSISTENT Memory, PM) bietet Byteebenenzugriff auf nicht veränderliche Medien und reduziert gleichzeitig die Latenz des Speicherns oder Abrufens von Daten erheblich. Es erstellt eine neue Ebene zwischen dem Speicher eines Systems und dem herkömmlichen Speicher. Jedes Programm, das von pm abhängig ist oder skaliert wird, mit schnellen Schreibvorgängen in ein persistentes Medium kann von PM profitieren.

In diesem Artikel wird beschrieben, wie die nicht veränderliche Speicherbibliothek (NVML) in ein Visual Studio-Projekt integriert werden kann.

Anmerkung

Persistent Memory wird manchmal auch als Speicherklassenspeicher (Storage Class Memory, SCM) bezeichnet.

 

PM und NVML

Die erste Unterstützung für beständigen Arbeitsspeicher wurde in Windows Server 2016 und dem Windows 10 Anniversary Update (1607) eingeführt. Eine kurze Übersicht finden Sie in diesen beiden Channel9-Videos:

Um Entwicklern zu helfen, die Vorteile persistenter Speicherangebote nutzen zu können, hat Microsoft auch zu den Bemühungen beigetragen, die nicht veränderliche Speicherbibliothek (NVML) auf Windows zu bringen. Diese Bibliothek bietet verschiedene Tools, um Anwendungen für beständigen Arbeitsspeicher zu sensibilieren. Sie enthält beispielsweise Code, mit dem Sie ganz einfach einen PM-fähigen Schlüsselwertspeicher für extrem schnelle Look-ups und Stores erstellen können. Weitere Informationen zu NVML, einschließlich Beispielen, finden Sie unter NVM Library.

Integrieren von NVML in ein Visual Studio-Projekt

  1. Herunterladen von NVML-Bibliotheksdateien und Headern
  1. Platzieren Sie die Bibliotheksdateien und -header in einem Verzeichnis Ihrer Wahl, z. B. "C:\NVML\lib" bzw. "C:\NVML\inc".

  2. Konfigurieren Sie Ihr Projekt wie folgt:

  • Öffnen Sie Ihr Visual Studio-Projekt, und klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Namen Ihres Projekts.
  • Öffnen Sie den Einstellungsbereich des Projekts am unteren Rand des resultierenden Popups.
  • Navigieren Sie zu "Konfigurationseigenschaften -> C/C++", und fügen Sie den Ordner hinzu, in dem Sie den Header (C:\NVML\inc) im Feld "Zusätzliche Includeverzeichnisse" gespeichert haben.
  • Navigieren Sie als Nächstes zu "Konfigurationseigenschaften -> Linker", und fügen Sie den Ordner hinzu, in dem Sie die Bibliothek (C:\NVML\lib) im Feld "Zusätzliche Bibliotheksverzeichnisse" gespeichert haben.
  1. Stellen Sie als Nächstes sicher, dass Sie auf das Projekt für Windows Server 2016 oder Windows 10 Anniversary Update abzielen:
  • Navigieren Sie zu "Konfigurationseigenschaften -> Allgemein", und legen Sie das Feld "Zielplattformversion" auf "10.0.14393.0" fest, und legen Sie
  • Navigieren Sie zu "Konfigurationseigenschaften -> C/C++", und fügen Sie dem Feld "Preprocessor" "NTDDI_VERSION=NTDDI_WIN10_RS1;" hinzu.
  1. Fügen Sie die Kopfzeilen in Ihren Code ein, und verknüpfen Sie die erforderlichen Bibliotheken.
  • An diesem Punkt können Sie einfach die Headerdateien einschließen, die Sie in Ihrem Code wie alle anderen Headerdateien verwenden möchten. Verwenden Sie beispielsweise "libpmem":
    • "#include <libpmem.h>" hinzufügen und
    • "libpmem.lib" zu "Konfigurationseigenschaften -> Linker -> Eingabe -> Zusätzliche Abhängigkeiten" hinzufügen

An diesem Punkt können Sie die Funktionen der Bibliothek direkt in Ihrem Code aufrufen und diese nutzen.