Compartilhar via


Programação de memória persistente no Windows – Integração NVML

A tecnologia pm (memória persistente) fornece acesso no nível de bytes a mídia não volátil, ao mesmo tempo em que reduz significativamente a latência de armazenamento ou recuperação de dados. Ele cria uma nova camada entre a memória de um sistema e o armazenamento tradicional. Qualquer programa dependente ou dimensionado com gravações rápidas em um meio persistente pode se beneficiar do PM.

A finalidade deste artigo é descrever como a NVML (biblioteca de memória não volátil) pode ser integrada a um projeto do Visual Studio para facilitar o uso.

Observação

Às vezes, a Memória Persistente também é conhecida como SCM (Memória de Classe de Armazenamento).

 

PM e NVML

O primeiro suporte para memória persistente foi introduzido em Windows Server 2016 e na Atualização de Aniversário do Windows 10 (1607). Para obter uma visão geral rápida, marcar estes dois vídeos do Channel9:

Para ajudar os desenvolvedores a aproveitar os benefícios das ofertas de memória persistente, a Microsoft também contribuiu para os esforços de trazer a NVML (biblioteca de memória não volátil) para o Windows. Essa biblioteca fornece várias ferramentas para tornar os aplicativos com reconhecimento de memória persistente. Por exemplo, ele contém código que permite criar facilmente um repositório de chave-valor com reconhecimento de PM para pesquisas e repositórios extremamente rápidos. Você pode encontrar mais informações sobre NVML, incluindo exemplos, na Biblioteca NVM.

Integrando o NVML a um projeto do Visual Studio

  1. Baixar arquivos e cabeçalhos da biblioteca NVML
  1. Coloque os arquivos e cabeçalhos da biblioteca em um diretório de sua escolha, por exemplo: "C:\NVML\lib" e "C:\NVML\inc", respectivamente.

  2. Configure seu projeto da seguinte maneira:

  • Abra o projeto do Visual Studio e, no "Gerenciador de Soluções", clique com o botão direito do mouse no nome do projeto.
  • Abra o painel de configuração do projeto na parte inferior do pop-up resultante.
  • Navegue até "Propriedades de Configuração –> C/C++" e adicione a pasta na qual você armazenou o cabeçalho (C:\NVML\inc) ao campo "Diretórios de Inclusão Adicionais".
  • Em seguida, navegue até "Propriedades de Configuração –> Vinculador" e adicione a pasta na qual você armazenou a biblioteca (C:\NVML\lib) para o campo "Diretórios de Biblioteca Adicionais"
  1. Em seguida, certifique-se de direcionar o projeto para Windows Server 2016 ou Windows 10 Atualização de Aniversário:
  • Navegue até "Propriedades de Configuração –> Geral" e defina o campo "Versão da Plataforma de Destino" como "10.0.14393.0" e
  • Navegue até "Propriedades de Configuração –> C/C++" e adicione "NTDDI_VERSION=NTDDI_WIN10_RS1;" ao campo "Pré-processador".
  1. Incluir os cabeçalhos em seu código e vincular às bibliotecas necessárias
  • Neste ponto, você pode simplesmente incluir os arquivos de cabeçalho que deseja usar em seu código, como qualquer outro arquivo de cabeçalho. Por exemplo, para usar libpmem:
    • adicionar "#include <libpmem.h>" e
    • adicionar "libpmem.lib" a "Propriedades de Configuração –> Vinculador –> Entrada –> Dependências Adicionais"

Neste ponto, você está pronto para chamar as funções da biblioteca diretamente em seu código e tirar proveito delas.