/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 或更高版本。