メインコンテンツまでスキップ

標準プロファイリング

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);