다음을 통해 공유


/volatileMetadata (휘발성 메모리 액세스에 대한 메타데이터 생성)

ARM64에서 x64 코드를 실행할 때 성능을 향상시키기 위해 휘발성 메모리 액세스에 대한 메타데이터를 생성합니다.

구문

/volatileMetadata[-]

인수

-
을 끕니다 /volatileMetadata. 에뮬레이터는 모든 로드/저장소에 장벽이 필요하다고 비관적으로 가정하기 때문에 ARM64에서 코드가 에뮬레이션 모드로 실행될 때 성능이 저하될 수 있습니다.

설명

Visual Studio 2019 16.10 /volatileMetadata 부터 x64 코드를 생성할 때 기본적으로 설정됩니다. 휘발성 메모리 주소를 식별하는 메타데이터를 생성하여 ARM64에서 x64 코드의 에뮬레이션 성능을 향상시킵니다. 에뮬레이터는 이 메타데이터를 사용하여 일시적이지 않다고 알고 있는 액세스에서 획득/릴리스 의미 체계를 사용하지 않음으로써 성능을 향상시킬 수 있습니다. 이 메타데이터가 없으면 에뮬레이터는 모든 주소가 일시적이며 획득 및 해제 의미 체계를 사용한다고 가정합니다.

한 가지 부작용은 /volatileMetadata 생성된 코드에 사용된 매크로를 볼 npad 수 있다는 것입니다. 이 매크로는 메모리 장벽과 연결할 주소를 만드는 지정된 수의 NOP 명령으로 확장됩니다. 그런 다음, 해당 주소는 메타데이터에 기록되어 획득/릴리스 의미 체계를 사용하여 액세스해야 함을 나타냅니다.

/volatileMetadata 는 x86을 대상으로 할 때 무시됩니다.

/volatileMetadata/volatileMetadata-를 사용하여 사용하지 않도록 설정할 수 있습니다.

요구 사항

Visual Studio 2019 버전 16.10 이상.

참고 항목

MSVC 컴파일러 옵션
MSVC 컴파일러 명령줄 구문