UDN
Search public documentation:
HotSpotReportGenerationJP
English Translation
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
UDK レベル作成ホーム > ホットスポット レポートの作成
ホットスポット レポートの作成
概要
生の MemLeakCheck (メモリ リーク チェック) データを作成する
- UnrealConsole をロードし、この検証に使用されるゲームのインスタンスに接続します。
- キャプチャ元にするビルドにある DebugConsole 実行ファイルを起動します。
- キャプチャの対象となる SP レベルの中に入ります。
- レベルに入ったら、次のコマンドを使用します。
DoMemLeakchecking 30
- という数字は、memleakcheck のキャプチャ間の秒数です。必要に応じてこの頻度を増減させることが可能です。ただし、通常はこの値を一定に保つことによって、経時的に適切にトレンドを追跡するべきです。
- P レベルがこれから変化するときに、
stat levels
(統計 レベル) を有効にして追跡を可能にします。 - P レベル全体を通過し、次の P レベルに移行します。
- 移行した P レベルへのキャプチャが 2 つ終了したら、メインメニューに戻るか、再ブートします (あるいはその両方を行います)。
- 他のレベルのキャプチャに入る前には、必ず再ブートしなければなりません。
- プロファイルされているプラットフォームに応じて、memleakcheck ファイルが以下のフォルダに作成されます。
- PC/UDK の場合 :
[install]\[GameName]\Profiling\MEMLEAKS
- iOS の場合 (PC に直接ドキュメントをバックアップした後に。ドキュメントディレクトリのバックアップについては デプロイ ツール をご覧ください。):
[install]\[GameName]\iOS_Backups\[DeviceName]\Profiling\MemLeaks
- PC/UDK の場合 :
- 各 memleakfile は、キャプチャが開始されたレベルに基づいて名づけられたフォルダの中に解析されます。
たとえば、 レベル a でキャプチャが開始され、 レベル b および レベル c に進んだ場合、これら一連の結果は レベル a フォルダに置かれます。
- これらの memleakcheck ファイル / フォルダを、探しやすい場所にコピーします。
データを取り出す CSV ファイルを作成して
- 次のフォルダから memleakcheckdiffer.exe を起動します。
..\Binaries\
- MemLeakCheckDiffer において、
File > Open
を選択して、フォルダとサブフォルダにある、すべての Memleak ファイルを開きます。 - 検索して、memleakcheck ファイルを置いたフォルダに進みます。
- フォルダで MemLeakCheckDiffer が立ち上がるまで待ちます。
- すべてのフォルダで MemLeakCheckDiffer ウインドウが立ち上がったら、
Generate Overall Report
(全体レポートを作成) を選択します。 - 各レベル用 CSV ファイルが作成されます。また、GlobalSummary (全体的要旨) CSV ファイルも作成されます。
- CSV ファイルが置かれる場所は、MemLeakCheck ファイルが置かれたフォルダです。
全体的なトレンドデータについて解析する
- Excel で GlobalSummary スプレッドシートを開きます。
- コンテンツデータをより見やすくするために、次の行以外は非表示にします。
- LowestTFP
- AnimSequenceClasses
- SkeletalMesh_Classes
- SoundNodeWave
- StaticMesh_Classes
- バケット名で始まり行の最後の値で終わる これら 5 つの行をハイライト表示します。
- それらが選択されたら、
Insert (挿入) > Line Graph (線グラフ)
を選択します。 - これによって、各コンテンツ バケットの状態とレベルの全体的なメモリトレンドを素早く把握することができます。
各レベルの CSV ファイルを解析する
「人にやさしい」ホットスポット レポートをレベルデザイナーに
この検証期間中において最も低いメモリは 20 MB であり、次のサブレベルがロードされていました。
このディップの期間において、Anim Sequence クラスは 15 MB、Skeletal Mesh クラスは 5 MB、 Sound Node Waves は 5 MB、Static Mesh クラスは 2 MB、それぞれ上昇しています。
以下の新たなサブレベル (複数もあり得る) が、この最初のディップが起きた期間である、3 番目と 6 番目のキャプチャの間にストリームインしています。
このディップの期間において、Anim Sequence クラスは 10 MB、Skeletal Mesh クラスは 2.5 MB、 Sound Node Waves は 5 MB、Static Mesh クラスは 1 MB、それぞれ上昇しています。
以下の新たなサブレベルが、この 2 番目のディップが起きた期間である 8 番目と 12 番目のキャプチャの間にストリームインしています。
- SP_Example_W
- SP_Example_02_boss
- SP_Example_02_S
- SP_Example_03
- SP_Example_04
BugItGo -1858.2000 -2162.7903 1572.0010 64073 -16686 0=
- SP_Example _Cine
BugItGo 904.3768 261.3029 1761.1804 -4788 -20256 72
- SP_Example_02_boss
- SP_Example_02_S
- SP_Example_03
処置すべきアイテム
避けるべきアイテム
フォローアップ用ホットスポット レポートを作成する
長期に及ぶ実行
domemleakchecking 30
(メモリリークチェック) コマンドを起動して、できる限り広い範囲でプレイします。これらの実行中に reducepoolsize
(プールサイズの削減) を使用することによって、最長のものを得ることができます。
このデータを使用して、個々のレベルの実行と継続的な実行の差を取って、この 2 つにおける基本的なメモリの差分を得ることができます。このデータを調べることによって、個々のレベルに処理するのに必要となるオーバーヘッドの量を知ることができるようになると共に、場合によっては発生しているかもしれないメモリ リークの位置を突き止めることができるようになります。