在 ARM64 上运行 x64 或 x86 代码时,为易失性内存访问生成元数据以提高性能。
语法
/volatileMetadata[-]
注解
从 Visual Studio 2022 18.6 开始,/volatileMetadata默认处于关闭状态,必须显式启用。 若要显式禁用它,请使用 /volatileMetadata-。
/volatileMetadata 通过生成标识可变内存地址的元数据,改进 ARM64 上的 x64 和 x86 代码的仿真性能。 仿真器可以使用此元数据来改进性能,方法是不对所知道的访问使用获取/发布语义。 如果没有此元数据,模拟器假定所有地址都是易失的,并且使用获取和释放语义。
其中 /volatileMetadata 一个副作用是,你可能会看到 npad 生成的代码中使用的宏。 此宏扩展到指定数量的 NOP 指令,这些指令创建与内存屏障关联的地址。 然后,该地址将记录在元数据中,以指示应使用获取/发布语义来访问该地址。
注释
在 Visual Studio 2019 2019 版本 16.10 到 2022 Visual Studio中,默认情况下/volatileMetadata处于打开状态。 从 Visual Studio 2022 18.6 开始,默认关闭 /volatileMetadata。
要求
Visual Studio 2019,版本 16.10 或更高版本。