Поделиться через


/volatileMetadata (Создание метаданных при доступе к переменной памяти)

Создайте метаданные для доступа к переменной памяти, чтобы повысить производительность при выполнении кода x64 в ARM64.

Синтаксис

/volatileMetadata[-]

Аргументы

-
Отключает /volatileMetadata. Это может привести к худшему производительности при выполнении кода в режиме эмуляции в ARM64, так как эмулятор пессимистично предполагает, что для каждой нагрузки или хранилища требуется барьер.

Замечания

Начиная с Visual Studio 2019 16.10, /volatileMetadata по умолчанию используется при создании кода x64. Он повышает производительность эмуляции кода x64 в ARM64 путем создания метаданных, определяющих изменяющиеся адреса памяти. Эмулятор может использовать эти метаданные для повышения производительности, не используя семантику получения и выпуска для тех, к которым он знает, не является переменным. Без этих метаданных эмулятор предполагает, что все адреса являются переменными и используют семантику получения и выпуска.

Одним из побочных эффектов /volatileMetadata является просмотр npad макросов, используемых в созданном коде. Этот макрос расширяется до указанного количества инструкций NOP , которые создают адрес для связывания с барьером памяти. Затем этот адрес записывается в метаданные, чтобы указать, что семантика получения и выпуска должна использоваться для доступа к нему.

/volatileMetadata игнорируется при выборе x86.

/volatileMetadata можно отключить с помощью /volatileMetadata-.

Требования

Visual Studio 2019 версии 16.10 или более поздней.

См. также

Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC