メモリ解放イベントを記録します。
構文
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 パラメーターを使用して、次のように、対応する割り当てを探します。baseAddress が PIXRecordMemoryAllocationEvent の対応する呼び出しに渡された baseAddress と一致する場合、PIX は割り当てを対応させ、アドレスを比較するだけで解放します。 この場合は、size パラメーターに 0 を渡すことができます。 baseAddress が、それに対応する割り当てで指定された値と異なる場合、size パラメーターには 0 以外の値を指定する必要があります。 この場合、PIX では baseAddress と size の両方を使用して、対応する割り当てが検索されます。
多数のイベントが同時に発生している場合や、システムの負荷が重くなっている場合は、Windows イベント トレーシング (ETW) によってメモリ イベントが失われることがあります。 イベントの損失によって、データの分析が不完全になります。 PIX メモリ キャプチャの UI には、イベント損失があったことを示す警告が表示されます。
要件
ヘッダー: pixmemory.h
ライブラリ: pixevt.lib
サポートされているプラットフォーム: Xbox One ファミリ本体と Xbox Series 本体
関連項目
PIX カスタム メモリ アロケーター (NDA トピック)認可が必須ですPIX API リファレンス
PIXRecordMemoryAllocationEvent
PIX (NDA トピック)認可が必須です