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

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

Syntax

/volatileMetadata[-]

Hinweise

Ab Visual Studio 2022 18.6 ist /volatileMetadata standardmäßig deaktiviert und muss explizit aktiviert sein. Um sie explizit zu deaktivieren, verwenden Sie /volatileMetadata-. /volatileMetadata verbessert die Emulationsleistung von x64- und x86-Code auf ARM64, 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.

Hinweis

In Visual Studio 2019, Version 16.10 bis Visual Studio 2022, war /volatileMetadata standardmäßig aktiviert. Ab Visual Studio 2022 18.6 ist /volatileMetadata standardmäßig deaktiviert.

Anforderungen

Visual Studio 2019 Version 16.10 oder höher.

Siehe auch

MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile