Share via


Programmation de mémoire persistante dans Windows - Intégration NVML

La technologie de mémoire persistante fournit un accès au niveau des octets aux médias non volatiles tout en réduisant considérablement la latence du stockage ou de la récupération des données. Il crée un nouveau niveau entre la mémoire d’un système et le stockage traditionnel. Tout programme dépendant de ou mis à l’échelle avec des écritures rapides sur un support persistant peut tirer parti de la pm.

L’objectif de cet article est de décrire comment la bibliothèque de mémoire non volatile (NVML) peut être intégrée à un projet Visual Studio pour une utilisation facile.

Notes

La mémoire persistante est parfois également appelée mémoire de classe de stockage (SCM).

 

PM et NVML

La première prise en charge de la mémoire persistante a été introduite dans Windows Server 2016 et la mise à jour anniversaire Windows 10 (1607). Pour une vue d’ensemble rapide, case activée ces deux vidéos Channel9 :

Pour aider les développeurs à tirer parti des avantages offerts par la mémoire persistante, Microsoft a également contribué aux efforts visant à intégrer la bibliothèque de mémoire non volatile (NVML) à Windows. Cette bibliothèque fournit différents outils pour rendre les applications compatibles avec la mémoire persistante. Par exemple, il contient du code qui vous permet de créer facilement un magasin de clés-valeur prenant en charge les pm pour des recherches et des magasins extrêmement rapides. Vous trouverez plus d’informations sur NVML, notamment des exemples, dans Bibliothèque NVM.

Intégration de NVML dans un projet Visual Studio

  1. Télécharger les fichiers et en-têtes de bibliothèque NVML
  1. Placez les fichiers et en-têtes de bibliothèque dans un répertoire de votre choix, par exemple « C:\NVML\lib » et « C:\NVML\inc », respectivement.

  2. Configurez votre projet comme suit :

  • Ouvrez votre projet Visual Studio et, dans le « Explorateur de solutions », cliquez avec le bouton droit sur le nom de votre projet.
  • Ouvrez le volet des paramètres du projet en bas de la fenêtre contextuelle qui en résulte.
  • Accédez à « Propriétés de configuration -> C/C++ » et ajoutez le dossier dans lequel vous avez stocké l’en-tête (C:\NVML\inc) au champ « Répertoires Include supplémentaires ».
  • Ensuite, accédez à « Propriétés de configuration -> Éditeur de liens » et ajoutez le dossier dans lequel vous avez stocké la bibliothèque (C:\NVML\lib) au champ « Répertoires de bibliothèque supplémentaires »
  1. Ensuite, veillez à cibler le projet pour Windows Server 2016 ou Windows 10 mise à jour anniversaire :
  • Accédez à « Propriétés de configuration -> Général » et définissez le champ « Version de la plateforme cible » sur « 10.0.14393.0 » et
  • Accédez à « Propriétés de configuration -> C/C++ » et ajoutez « NTDDI_VERSION=NTDDI_WIN10_RS1; » au champ « Préprocesseur ».
  1. Inclure les en-têtes dans votre code et créer un lien vers les bibliothèques requises
  • À ce stade, vous pouvez simplement inclure les fichiers d’en-tête que vous souhaitez utiliser dans votre code comme tout autre fichier d’en-tête. Par exemple, pour utiliser libpmem :
    • ajoutez « #include <libpmem.h> » et
    • ajouter « libpmem.lib » à « Propriétés de configuration -> Éditeur de liens -> Entrée -> Dépendances supplémentaires »

À ce stade, vous êtes prêt à appeler les fonctions de la bibliothèque directement dans votre code et à en tirer parti.