/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