/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
-
/volatileMetadata
Deaktiviert . 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.
Siehe auch
MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile