/volatileMetadata
(揮発性メモリ アクセスのメタデータを生成する)
ARM64 で x64 コードを実行するときにパフォーマンスを向上させるために、揮発性メモリ アクセスのメタデータを生成します。
構文
/volatileMetadata[-]
引数
-
をオフ /volatileMetadata
にします。 これにより、コードが ARM64 のエミュレーション モードで実行されると、パフォーマンスが低下する可能性があります。エミュレーターは、すべての読み込み/ストアにバリアが必要であるとペシミスティックに想定しているためです。
解説
Visual Studio 2019 16.10 以降では、 /volatileMetadata
x64 コードを生成するときに既定でオンになっています。 揮発性メモリ アドレスを識別するメタデータを生成することで、ARM64 の x64 コードのエミュレーション パフォーマンスが向上します。 エミュレーターは、このメタデータを使用して、揮発性ではないことがわかっているアクセスに対して取得/解放セマンティクスを使用しないことでパフォーマンスを向上させることができます。 このメタデータがない場合、エミュレーターは、すべてのアドレスが揮発性であり、取得セマンティクスとリリース セマンティクスを使用することを前提としています。
1 つの副作用 /volatileMetadata
は、生成されたコードで使用されるマクロが表示 npad
される場合です。 このマクロは、メモリ バリアに関連付けるアドレスを作成する指定された数の NOP
命令に拡張されます。 その後、そのアドレスはメタデータに記録され、取得/解放セマンティクスを使用してアクセスする必要があることを示します。
/volatileMetadata
は、x86 を対象とする場合は無視されます。
/volatileMetadata
を無効にするには、/volatileMetadata-
を使用します。
要件
Visual Studio 2019 バージョン 16.10 以降。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示