Udostępnij za pośrednictwem


/volatileMetadata (Generuj metadane na nietrwałych dostępach do pamięci)

Generowanie metadanych dla nietrwałych dostępu do pamięci w celu zwiększenia wydajności podczas uruchamiania kodu x64 w usłudze ARM64.

Składnia

/volatileMetadata[-]

Argumenty

-
Wyłącza funkcję /volatileMetadata. Może to spowodować pogorszenie wydajności, gdy kod działa w trybie emulacji w usłudze ARM64, ponieważ emulator pesymistycznie zakłada, że każde obciążenie/magazyn wymaga bariery.

Uwagi

Począwszy od programu Visual Studio 2019 16.10, /volatileMetadata jest domyślnie włączony podczas generowania kodu x64. Poprawia wydajność emulacji kodu x64 w usłudze ARM64, generując metadane identyfikujące nietrwałe adresy pamięci. Emulator może użyć tych metadanych, aby zwiększyć wydajność, nie używając semantyki uzyskiwania/wydawania tych, do których uzyskuje dostęp, nie są niestabilne. Bez tych metadanych emulator zakłada, że wszystkie adresy są nietrwałe i używają semantyki uzyskiwania i wydawania.

Jednym z efektów ubocznych /volatileMetadata jest to npad , że makra są używane w wygenerowany kod. To makro rozszerza określoną liczbę instrukcji NOP , które tworzą adres do skojarzenia z barierą pamięci. Ten adres jest następnie rejestrowany w metadanych, aby wskazać, że semantyka uzyskiwania/wydawania powinna być używana do uzyskiwania do niego dostępu.

/volatileMetadata element jest ignorowany podczas określania wartości docelowej x86.

/volatileMetadata można wyłączyć za pomocą polecenia /volatileMetadata-.

Wymagania

Visual Studio 2019 w wersji 16.10 lub nowszej.

Zobacz też

Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC