/volatileMetadata
(Gerar metadados em acessos de memória volátil)
Gere metadados para acessos de memória volátil para melhorar o desempenho ao executar código x64 no ARM64.
Sintaxe
/volatileMetadata[-]
Argumentos
-
Desativa /volatileMetadata
. Isso pode resultar em pior desempenho quando seu código é executado no modo de emulação no ARM64 porque o emulador assume pessimistamente que cada carregamento/armazenamento precisa de uma barreira.
Comentários
A partir do Visual Studio 2019 16.10, /volatileMetadata
está ativado por padrão ao gerar código x64. Ele melhora o desempenho de emulação do código x64 no ARM64 gerando metadados que identificam endereços de memória voláteis. Um emulador pode usar esses metadados para melhorar o desempenho não usando semântica de aquisição/liberação nos acessos que ele sabe que não são voláteis. Sem esses metadados, o emulador assume que todos os endereços são voláteis e usa a semântica de aquisição e liberação.
Um efeito colateral de /volatileMetadata
é que você pode ver npad
macros usadas no código gerado. Essa macro se expande para um número especificado de instruções que criam um endereço para associar a uma barreira de NOP
memória. Esse endereço é então registrado nos metadados para indicar que a semântica de aquisição/liberação deve ser usada para acessá-lo.
/volatileMetadata
é ignorado ao segmentar x86.
/volatileMetadata
pode ser desabilitado com /volatileMetadata-
.
Requisitos
Visual Studio 2019 versão 16.10 ou posterior.
Confira também
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários