Freigeben über


/volatileMetadata (Metadaten für veränderliche Speicherzugriffe generieren)

Generieren Sie Metadaten für veränderliche Speicherzugriffe, um die Leistung beim Ausführen von x64-Code auf ARM64 zu verbessern.

Syntax

/volatileMetadata[-]

Argumente

-
/volatileMetadataDeaktiviert . Dies kann zu einer schlechteren Leistung führen, wenn Ihr Code im Emulationsmodus auf ARM64 ausgeführt wird, da der Emulator pessimistisch davon ausgeht, dass jeder Lade-/Speicher eine Barriere benötigt.

Hinweise

Ab Visual Studio 2019 16.10 /volatileMetadata ist standardmäßig beim Generieren von x64-Code aktiviert. Dadurch wird die Emulationsleistung von x64-Code auf ARM64 verbessert, indem Metadaten generiert werden, die veränderliche Speicheradressen identifizieren. Ein Emulator kann diese Metadaten verwenden, um die Leistung zu verbessern, indem keine Akquis/Release-Semantik für diese zugriffe verwendet wird, die bekannt ist, dass sie nicht veränderlich sind. Ohne diese Metadaten geht der Emulator davon aus, dass alle Adressen veränderlich sind und Die Semantik abrufen und freigeben.

Ein Nebeneffekt /volatileMetadata ist, npad dass Makros im generierten Code verwendet werden. Dieses Makro wird auf eine bestimmte Anzahl von Anweisungen erweitert, mit denen NOP eine Adresse erstellt wird, die einer Speicherbarriere zugeordnet werden soll. Diese Adresse wird dann in den Metadaten aufgezeichnet, um anzugeben, dass die Kauf-/Freigabesemantik für den Zugriff darauf verwendet werden soll.

/volatileMetadata wird ignoriert, wenn sie auf x86 ausgerichtet ist.

/volatileMetadata kann mithilfe von /volatileMetadata- deaktiviert werden.

Anforderungen

Visual Studio 2019 Version 16.10 oder höher.

Weitere Informationen

MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile