Compartilhar via


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

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

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

Nota

A memória persistente às vezes também é conhecida como SCM (Memória de Classe de Armazenamento).

 

PM e NVML

O primeiro suporte para memória persistente foi introduzido no Windows Server 2016 e na Atualização de Aniversário do Windows 10 (1607). Para obter uma visão geral rápida, confira 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 biblioteca de memória não volátil (NVML) 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, em 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 seu 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) ao campo "Diretórios de Biblioteca Adicionais"
  1. Em seguida, certifique-se de direcionar o projeto para Windows Server 2016 ou Atualização de Aniversário do Windows 10:
  • 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
    • adicione "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.