Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Технология постоянной памяти (PM) обеспечивает доступ на уровне байтов к ненезависимым носителям, а также снижает задержку хранения или извлечения данных значительно. Он создает новый уровень между памятью системы и традиционным хранилищем. Любая программа, которая зависит от или масштабируется с быстрыми записью в постоянный носитель, может воспользоваться pm.
Цель этой статьи состоит в том, чтобы определить, как библиотеку памяти (NVML) неизменяемой памяти (NVML) можно интегрировать в проект Visual Studio для простого использования.
Заметка
Постоянная память иногда также называется памятью класса хранилища (SCM).
PM и NVML
Первая поддержка постоянной памяти появилась в Windows Server 2016 и юбилейном обновлении Windows 10 (1607). Краткий обзор см. в следующих двух видео channel9:
- использование ненезависимой памяти (NVDIMM-N) в качестве блочного хранилища в Windows Server 2016
- использование ненезависимой памяти (NVDIMM-N) в качестве хранилища Byte-Addressable в Windows Server 2016
Чтобы помочь разработчикам воспользоваться преимуществами предложений постоянной памяти, корпорация Майкрософт также способствовала усилиям по привлечению ненезависимой библиотеки памяти (NVML) в Windows. Эта библиотека предоставляет различные средства для поддержки постоянной памяти приложений. Например, он содержит код, который позволяет легко создавать хранилище ключей с поддержкой PM для очень быстрых поисков и хранилищ. Дополнительные сведения о NVML, включая примеры, см. в библиотеке NVM.
Интеграция NVML в проект Visual Studio
- Скачивание файлов и заголовков библиотекИ NVML
- NVML поддерживается на сайте GitHub. Вы можете скомпилировать источник самостоятельно или просто скачать скомпилированные двоичные файлы непосредственно отсюда: NVML версии 1.2 — Windows Technical Preview.
Поместите файлы библиотеки и заголовки в каталог выбранного каталога, например "C:\NVML\lib" и "C:\NVML\inc" соответственно.
Настройте проект следующим образом:
- Откройте проект Visual Studio и в обозревателе решений щелкните правой кнопкой мыши имя проекта.
- Откройте панель параметров проекта в нижней части полученного всплывающего окна.
- Перейдите к разделу "Свойства конфигурации —> C/C++" и добавьте папку, в которой хранится заголовок (C:\NVML\inc) в поле "Дополнительные каталоги включения".
- Затем перейдите к разделу "Свойства конфигурации -> компоновщик" и добавьте папку, в которой хранится библиотека (C:\NVML\lib) в поле "Дополнительные каталоги библиотеки"
- Затем убедитесь, что вы нацелены на проект для Юбилейного обновления Windows Server 2016 или Windows 10:
- Перейдите к разделу "Свойства конфигурации —> общие" и задайте для поля "Версия целевой платформы" значение "10.0.14393.0" и
- Перейдите к разделу "Свойства конфигурации —> C/C++" и добавьте "NTDDI_VERSION=NTDDI_WIN10_RS1;" в поле "Препроцессор".
- Включите заголовки в код и свяжите необходимые библиотеки
- На этом этапе вы можете просто включить файлы заголовков, которые вы хотите использовать в коде, как и любые другие файлы заголовков. Например, чтобы использовать libpmem:
- добавьте "#include <libpmem.h>" и
- добавьте libpmem.lib в раздел "Свойства конфигурации - компоновщик> -> входные данные -> дополнительные зависимости".
На этом этапе вы готовы вызвать функции библиотеки непосредственно в коде и воспользоваться ими.