다음을 통해 공유


PIXRecordMemoryFreeEvent

메모리 해제 이벤트를 기록합니다.

구문

void PIXRecordMemoryFreeEvent(  
         USHORT allocatorId,  
         void* baseAddress,  
         size_t size,  
         UINT64 metadata  
)  

매개 변수

allocatorId   
형식: USHORT

메모리 프로파일러에서 메모리 할당 그룹을 식별하기 위해 사용할 수 있는 ID입니다. 예를 들어 그래픽, 오디오, 물리와 같은 항목에 대해 다른 힙을 갖고 있으면 이러한 각 범주에 다른 allocatorID를 할당하여, PIX에서 메모리 캡처를 볼 때 이를 쉽게 식별하도록 할 수 있습니다.

baseAddress   
형식: void*

해제된 메모리의 시작 주소입니다.

size   
형식: size_t

해제된 메모리의 크기(바이트)입니다.

metadata   
형식: UINT64

추가 데이터를 사용하여 해제되는 메모리에 태그를 지정하기 위해 사용할 수 있는 64비트 부호 없는 정수입니다. 이 추가 데이터는 PIX에서 UserData 열에 표시됩니다. 예를 들어 이 추가 데이터를 사용하여 지정된 메모리 위치에 해제된 타이틀 내의 개체 유형을 식별할 수 있습니다. PIXRecordMemoryFreeEvent에 전달된 값은 PIXRecordMemoryAllocationEvent에 관한 해당 호출에 전달되는 값과 일치할 필요가 없습니다.

반환 값

형식: void

설명

PIX 메모리 추적 이벤트는 PIX가 메모리 프로파일링 캡처에서 타이틀의 사용자 지정 메모리 할당자 내에서 수행되는 모든 메모리 할당 및 해제에 대한 정보를 표시하는 데 필요한 데이터를 제공합니다. 이 데이터를 제공함으로써, PIX는 VirtualAlloc/VirtualFreeHeapAlloc/HeapFree 호출을 위해 수행하는 사용자 지정 할당자에 대해 모든 동일한 데이터를 표시합니다.

PIX는 baseAddresssize 매개 변수를 사용하여 다음과 같이 해당 할당을 찾습니다. baseAddressPIXRecordMemoryAllocationEvent에 관한 해당 호출에 전달된 baseAddress와 일치할 경우 PIX는 할당을 일치시키고 단순히 주소를 비교하여 해제합니다. 이 경우 size 매개 변수로 0을 전달할 수 있습니다. baseAddress가 해당 할당에 지정된 값과 다르면 size 매개 변수를 0이 아닌 값으로 지정해야 합니다. 이 경우 PIX는 baseAddresssize를 모두 사용하여 해당 할당을 찾습니다.

동시에 많은 이벤트가 발생하거나 시스템의 부하가 높을 경우 ETW(Windows용 이벤트 추적)에 의해 메모리 이벤트가 손실될 수 있습니다. 이벤트 손실이 발생하면 데이터 분석이 완료되지 않습니다. PIX 메모리 캡처 UI는 이벤트 손실을 나타내는 경고를 표시합니다.

요건

헤더: pixmemory.h

라이브러리: pixevt.lib

지원되는 플랫폼: Xbox One 패밀리 콘솔 및 Xbox Series 콘솔

참고 항목

PIX 사용자 지정 메모리 할당자(NDA 항목)권한 부여 필요PIX API 참조
PIXRecordMemoryAllocationEvent
PIX(NDA 항목)권한 부여 필요