Compartilhar via


/volatileMetadata (Gerar metadados em acessos voláteis à memória)

Gere metadados para acessos voláteis à memória para melhorar o desempenho ao executar o código x64 no ARM64.

Sintaxe

/volatileMetadata[-]

Argumentos

-
Desliga /volatileMetadata. Isso pode resultar em pior desempenho quando seu código é executado no modo de emulação no ARM64 porque o emulador assume pessimisticamente que cada carga/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 da 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 a semântica de aquisição/liberação nos acessos que ele sabe que não são voláteis. Sem esses metadados, o emulador pressupõe que todos os endereços são voláteis e usa a semântica de aquisição e liberação.

Um efeito colateral é que /volatileMetadata 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 a ser associado 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 direcionar 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