/volatileMetadata
(Générer des métadonnées sur les accès à la mémoire volatile)
Générez des métadonnées pour les accès à la mémoire volatile afin d’améliorer les performances lors de l’exécution du code x64 sur ARM64.
Syntaxe
/volatileMetadata[-]
Arguments
-
Désactive /volatileMetadata
. Cela peut entraîner des performances pires lorsque votre code s’exécute en mode émulation sur ARM64, car l’émulateur suppose pessimistement que chaque charge/magasin a besoin d’une barrière.
Notes
À compter de Visual Studio 2019 16.10, /volatileMetadata
il est activé par défaut lors de la génération de code x64. Elle améliore les performances d’émulation du code x64 sur ARM64 en générant des métadonnées qui identifient les adresses de mémoire volatiles. Un émulateur peut utiliser ces métadonnées pour améliorer les performances en n’utilisant pas la sémantique d’acquisition/mise en production sur ces accès qu’il sait ne sont pas volatiles. Sans ces métadonnées, l’émulateur suppose que toutes les adresses sont volatiles et utilisent la sémantique d’acquisition et de mise en production.
L’un des effets secondaires est /volatileMetadata
que vous pouvez voir npad
les macros utilisées dans le code généré. Cette macro s’étend à un nombre spécifié d’instructions NOP
qui créent une adresse à associer à une barrière de mémoire. Cette adresse est ensuite enregistrée dans les métadonnées pour indiquer que la sémantique d’acquisition/mise en production doit être utilisée pour y accéder.
/volatileMetadata
est ignoré lors du ciblage de x86.
/volatileMetadata
peut être désactivé avec /volatileMetadata-
.
Spécifications
Visual Studio 2019, version 16.10 ou ultérieure.
Voir aussi
Options du compilateur MSVC
Syntaxe de la ligne de commande du compilateur MSVC