次の方法で共有


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/VirtualFree および HeapAlloc/HeapFree の呼び出しに対するのとまったく同じデータを表示します。

PIX では、baseAddress パラメーターと size パラメーターを使用して、次のように、対応する割り当てを探します。baseAddressPIXRecordMemoryAllocationEvent の対応する呼び出しに渡された baseAddress と一致する場合、PIX は割り当てを対応させ、アドレスを比較するだけで解放します。 この場合は、size パラメーターに 0 を渡すことができます。 baseAddress が、それに対応する割り当てで指定された値と異なる場合、size パラメーターには 0 以外の値を指定する必要があります。 この場合、PIX では baseAddresssize の両方を使用して、対応する割り当てが検索されます。

多数のイベントが同時に発生している場合や、システムの負荷が重くなっている場合は、Windows イベント トレーシング (ETW) によってメモリ イベントが失われることがあります。 イベントの損失によって、データの分析が不完全になります。 PIX メモリ キャプチャの UI には、イベント損失があったことを示す警告が表示されます。

要件

ヘッダー: pixmemory.h

ライブラリ: pixevt.lib

サポートされているプラットフォーム: Xbox One ファミリ本体と Xbox Series 本体

関連項目

PIX カスタム メモリ アロケーター (NDA トピック)認可が必須ですPIX API リファレンス
PIXRecordMemoryAllocationEvent
PIX (NDA トピック)認可が必須です