/volatileMetadata (揮発性メモリ アクセスのメタデータを生成する)

ARM64 で x64 または x86 コードを実行するときにパフォーマンスを向上させるために、揮発性メモリ アクセスのメタデータを生成します。

構文

/volatileMetadata[-]

解説

Visual Studio 2022 18.6 以降、/volatileMetadata は既定でオフになっており、明示的に有効にする必要があります。 明示的に無効にするには、 /volatileMetadata-を使用します。 /volatileMetadata では、揮発性メモリ アドレスを識別するメタデータを生成することで、ARM64 の x64 および x86 コードのエミュレーション パフォーマンスが向上します。 エミュレーターは、このメタデータを使用して、揮発性ではないことがわかっているアクセスに対して取得/解放セマンティクスを使用しないことでパフォーマンスを向上させることができます。 このメタデータがない場合、エミュレーターは、すべてのアドレスが揮発性であり、取得セマンティクスとリリース セマンティクスを使用することを前提としています。

/volatileMetadataの副作用の 1 つは、生成されたコードで使用npadマクロが表示される場合です。 このマクロは、メモリ バリアに関連付けるアドレスを作成する指定された数の NOP 命令に拡張されます。 その後、そのアドレスはメタデータに記録され、取得/解放セマンティクスを使用してアクセスする必要があることを示します。

Visual Studio 2019 バージョン 16.10 ~ Visual Studio 2022 では、/volatileMetadata は既定でオンになっています。 Visual Studio 2022 18.6 以降では、/volatileMetadata は既定でオフになっています。

要件

Visual Studio 2019 バージョン 16.10 以降。

関連項目

MSVC コンパイラ オプション
MSVC コンパイラ コマンド ラインの構文