/volatileMetadata
(產生變動性記憶體存取的元數據)
產生動態記憶體存取的元數據,以改善在ARM64上執行 x64 程式代碼時的效能。
語法
/volatileMetadata[-]
引數
-
關閉 /volatileMetadata
。 當您的程式代碼在 ARM64 上以模擬模式執行時,這可能會導致效能降低,因為模擬器悲觀地假設每個載入/存放區都需要屏障。
備註
從 Visual Studio 2019 16.10 開始, /volatileMetadata
在產生 x64 程式代碼時預設為開啟。 它藉由產生可識別揮發性記憶體位址的元數據,改善ARM64上 x64 程式代碼的模擬效能。 模擬器可以使用此元數據來改善效能,方法是不要在它知道的存取者上使用取得/發行語意來改善效能。 如果沒有此元數據,模擬器會假設所有位址都是揮發性的,並使用取得和釋放語意。
的 /volatileMetadata
一個副作用是您可能會看到 npad
產生的程式代碼中使用的巨集。 這個巨集會展開至指定數目的 NOP
指示,以建立位址以與記憶體屏障產生關聯。 該位址接著會記錄在元數據中,以指出應該使用取得/發行語意來存取它。
/volatileMetadata
以 x86 為目標時會忽略 。
可以使用 /volatileMetadata-
來停用 /volatileMetadata
。
需求
Visual Studio 2019 16.10 版或更新版本。