/volatileMetadata
(Generare metadati per gli accessi alla memoria volatile)
Generare metadati per gli accessi alla memoria volatile per migliorare le prestazioni durante l'esecuzione di codice x64 in ARM64.
Sintassi
/volatileMetadata[-]
Argomenti
-
Disattiva /volatileMetadata
. Ciò può comportare prestazioni peggiori quando il codice viene eseguito in modalità di emulazione in ARM64 perché l'emulatore presuppone in modo pessimistico che ogni carico/archivio richieda una barriera.
Osservazioni:
A partire da Visual Studio 2019 16.10, /volatileMetadata
è attivato per impostazione predefinita durante la generazione di codice x64. Migliora le prestazioni di emulazione del codice x64 in ARM64 generando metadati che identificano gli indirizzi di memoria volatili. Un emulatore può usare questi metadati per migliorare le prestazioni non usando la semantica di acquisizione/rilascio su tali accessi che sa che non sono volatili. Senza questi metadati, l'emulatore presuppone che tutti gli indirizzi siano volatili e usi la semantica di acquisizione e rilascio.
Un effetto collaterale di /volatileMetadata
è che è possibile visualizzare npad
macro usate nel codice generato. Questa macro si espande fino a un numero specificato di NOP
istruzioni che creano un indirizzo da associare a una barriera di memoria. Tale indirizzo viene quindi registrato nei metadati per indicare che la semantica di acquisizione/rilascio deve essere usata per accedervi.
/volatileMetadata
viene ignorato quando la destinazione è x86.
/volatileMetadata
può essere disabilitato utilizzando /volatileMetadata-
.
Requisiti
Visual Studio 2019 versione 16.10 o successiva.
Vedi anche
Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC