Condividi tramite


Programmazione della memoria persistente in Windows - Integrazione NVML

La tecnologia di memoria persistente (PM) fornisce l'accesso a livello di byte ai supporti non volatili, riducendo al tempo stesso la latenza di archiviazione o recupero dei dati in modo significativo. Crea un nuovo livello tra la memoria di un sistema e l'archiviazione tradizionale. Qualsiasi programma dipendente da o scalabilità con scritture rapide in un supporto persistente può trarre vantaggio da PM.

Lo scopo di questo articolo è illustrare in che modo la libreria di memoria non volatile (NVML) può essere integrata in un progetto di Visual Studio per semplificare l'uso.

Nota

La memoria persistente viene talvolta definita anche memoria della classe di archiviazione (SCM).

 

PM e NVML

Il primo supporto per la memoria persistente è stato introdotto in Windows Server 2016 e nell'aggiornamento dell'anniversario Windows 10 (1607). Per una rapida panoramica, vedere questi due video di Channel9:

Per aiutare gli sviluppatori a sfruttare i vantaggi offerti dalle offerte di memoria persistente, Microsoft ha contribuito anche agli sforzi di portare la libreria di memoria non volatile (NVML) in Windows. Questa libreria fornisce vari strumenti per rendere le applicazioni in grado di essere compatibile con la memoria persistente. Ad esempio, contiene codice che consente di creare facilmente un archivio chiave-valore compatibile con PM per ricerche e archivi estremamente veloci. Altre informazioni su NVML, inclusi gli esempi, sono disponibili nella libreria NVM.

Integrazione di NVML in un progetto di Visual Studio

  1. Scaricare i file e le intestazioni della libreria NVML
  1. Inserire i file e le intestazioni della libreria in una directory scelta, ad esempio "C:\NVML\lib" e "C:\NVML\inc".

  2. Configurare il progetto come segue:

  • Aprire il progetto di Visual Studio e in "Esplora soluzioni" fare clic con il pulsante destro del mouse sul nome del progetto.
  • Aprire il riquadro delle impostazioni del progetto nella parte inferiore del popup risultante.
  • Passare a "Proprietà di configurazione -> C/C++" e aggiungere la cartella in cui è stata archiviata l'intestazione (C:\NVML\inc) al campo "Directory di inclusione aggiuntive".
  • Passare quindi a "Proprietà di configurazione -> Linker" e aggiungere la cartella in cui è stata archiviata la libreria (C:\NVML\lib) al campo "Directory librerie aggiuntive"
  1. Assicurarsi quindi di specificare come destinazione il progetto per Windows Server 2016 o Windows 10 Aggiornamento dell'anniversario:
  • Passare a "Proprietà di configurazione -> Generale" e impostare il campo "Versione piattaforma di destinazione" su "10.0.14393.0" e
  • Passare a "Proprietà di configurazione -> C/C++" e aggiungere "NTDDI_VERSION=NTDDI_WIN10_RS1;" al campo "Preprocessore".
  1. Includere le intestazioni nel codice e collegarsi alle librerie necessarie
  • A questo punto, è sufficiente includere i file di intestazione che si sta cercando di usare nel codice come qualsiasi altro file di intestazione. Ad esempio, per usare libpmem:
    • aggiungere "#include <libpmem.h>" e
    • aggiungere "libpmem.lib" a "Proprietà di configurazione -> Linker - Input ->> Dipendenze aggiuntive"

A questo punto si è pronti per chiamare le funzioni della libreria direttamente nel codice e sfruttarle.