標準プロファイリング
Last updated on February 4, 2026
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Development Toolkit(ADT)CLIを使用して、ゲームセッションとテストからのパフォーマンスデータを保存および表示できます。テストでは、フレームごとのパフォーマンス統計を記録し、JSONファイルで出力を生成できる必要があります。このガイドでは、標準プロファイリングの設定方法を説明します。
パフォーマンステストの出力
パフォーマンステストには2種類の出力があります:
- UE4ログ: このログは、コマンドラインで実行する場合はコマンドラインに出力され、UE4エディターで実行する場合はUnreal Engine 4(UE4)のログウィンドウに出力されます。デフォルトでは、ログは次のディレクトリに保存されます:
\<ProjectRoot>\ProjectName\Saved\Logs
- ADTログファイル: テストはn個のADTログファイルを生成する必要があります。各ファイルには、ゲームの1つのレベルからのテスト結果が含まれています。ファイルはJSON lines形式である必要があります。ADTログファイルのレイアウトは次のようになります:
<header>
---
<body>
UE4自動テストが実行されるたびに、ADTログファイルが生成されます。パスは任意の場所に配置でき、後でADT CLIを介してファイルをアップロードするために使用されます。例:
\<ProjectRoot>\ProjectName\Saved\AutomationTest\PerformanceTest\PerformanceTest_Windows_Level1.json
ADTログファイル
テスト結果ヘッダー
<header>部分は次のようになります:
{
"@encoding": "blackbox/performancetest+json.v1.0.1"
}
"@encoding"は、このADTログファイルのエンコーディングバージョンです。このエンコーディングにより、ADT Webがこのファイルの形式を認識できます。
テスト結果本文
<body>部分は次のようになります:
{map: "", location: "", frame_no: "", total_run_time: ", "frame_time: "", game_time: "", gpu_time: "", draw_time: "", fps: "", physical_memory_usage: ""}
mapは現在のテストのレベル名ですlocationは現在の行が生成されたマップ内の場所名ですframe_noは現在のテストのフレーム番号です。0から始まりますtotal_run_timeはテストの実行に費やされた合計時間ですframe_timeは各フレーム間の時間です。値はms単位ですgame_timeはCPUが現在のフレームをレンダリングするのに必要な時間です。値はms単位ですgpu_timeはGPUが現在のフレームをレンダリングするのに必要な時間です。値はms単位ですdraw_timeはGPUへの描画呼び出しを行うのに必要な時間です。値はms単位ですfpsはこのフレームで記録されたfpsですphysical_memory_usageはこのフレームで記録されたメモリ使用量です
テスト結果の例
以下は、サンプルADTログファイルの例です。ファイルはこの形式に従う必要があります。
{
"@encoding": "blackbox/performancetest+json.v1.0.1", "location": "Level_1"
}
---
{"map":"Escape_Persistent","location":"StartOfLevel","frame_no":1,"total_run_time":9.1677160263061523, "frame_time":916.7716064453125,"game_time":24.550630569458008,"gpu_time":794.19097900390625,"draw_time":0.092030003666877747,"fps":1.0907841920852661,"physical_memory_usage":12586881024}
{"map":"Escape_Persistent","location":"StartOfLevel","frame_no":2,"total_run_time":10.1677160263061523, "frame_time":1078.765869140625,"game_time":48.986068725585938,"gpu_time":1041.8829345703125,"draw_time":0.21141700446605682,"fps":0.92698520421981812,"physical_memory_usage":12632846336}
{"map":"Escape_Persistent","location":"Helipad","frame_no":3,"total_run_time":11.1677160263061523, "frame_time":1062.9801025390625,"game_time":54.457942962646484,"gpu_time":1264.8056640625,"draw_time":0.31886529922485352,"fps":0.94075137376785278,"physical_memory_usage":12636585984}
---
{"test_id": "25D53E184192CDEA948125A38F6D0920"}
フレーム統計の取得
以下は、推奨するUE4フレーム統計の取得方法です(UnrealClient.cppから引用)
フレーム時間
const float RawFrameTime = (FApp::GetCurrentTime() - FApp::GetLastTime()) * 1000.f;
if (FrameTime == 0.0f) FrameTime = RawFrameTime;
else FrameTime = 0.9 * FrameTime + 0.1 * RawFrameTime;
ゲーム時間
const float RawGameTime = FPlatformTime::ToMilliseconds(GGameThreadTime);
if (GameThreadTime == 0.0f) GameThreadTime = RawGameTime;
else GameThreadTime = 0.9 * GameThreadTime + 0.1 * RawGameTime;
GPU時間
const float RawGPUFrameTime = FPlatformTime::ToMilliseconds(GGPUFrameTime);
if (GPUFrameTime == 0.0f) GPUFrameTime = RawGPUFrameTime;
else GPUFrameTime = 0.9 * GPUFrameTime + 0.1 * RawGPUFrameTime;
描画時間
const float RawDrawTime = FPlatformTime::ToMilliseconds(GRenderThreadTime);
if (DrawTime == 0.0f) DrawTime = RawDrawTime;
else DrawTime = 0.9 * DrawTime + 0.1 * RawDrawTime;
フレームレート(FPS)
float fps = 1000.0f / FMath::Clamp(FrameTime, 0.00001f, FLT_MAX));
物理メモリ使用量
Int64 PhysicalMemoryUsage = int64(FPlatformMemory::GetStats().UsedPhysical);