#1. はじめに
[検証バージョン:4.24.0]
4.23から追加された**CSVToSVGToolはCSVProfilerで取得したデータをグラフ化するためのコマンドラインツールです。このツールを利用することでCSVProfilerで出力した.csvファイルを.svgファイルに変換し、パフォーマンス推移グラフとして可視化することができます。
ざっくり言えば「カッコいいグラフを作るツール」**です。
[基礎知識]
公式ドキュメント:CSV Profiler
Qiita:[UE4] CSV Profileを用いたパフォーマンス計測
これらのツールを用いることで以下のようなグラフを作成することができます。上の.csvファイルはCSVProfilerから取得されたもので、下のグラフは.csvから.svg変換したものとなります。
#2. 使い方
CSVToSVGToolを利用してパフォーマンスグラフを作成する手順は以下の2つです。
【CSVToSVGToolでパフォーマンスグラフを作成する手順】
① CSVProfilerでアプリケーションのプロファイルデータ(.csv)を取得
CSVProfilerの使い方を参考に、csvprofile start/csvprofile stopコマンドを利用して取得できます。
② CSVToSVGToolでプロファイルデータ(.csv)を.svg形式に変換
CSVToSVGToolはコマンドラインツールのため、必要な引数とプロファイルデータを渡すことで変換します。
以下は②のバッチファイル例で、プロジェクト構成に沿って編集することで直ぐに活用できます。
@echo off
rem ---------- Common ----------
rem Engine Root
set ENGINE_PATH=G:\GitHub\UnrealEngine-4.24
rem Tool Path
set TOOL_PATH=\Engine\Binaries\DotNET\CsvTools\CSVToSVG.exe
rem ---------- Option ----------
rem 入力先csv指定: -csv [csvFileName] OR -csvs [list] OR -csvDir [path]
set CMD_CSV=-csv G:\Report\Profile(20191204_232056).csv
rem 出力先svg指定: -o [svgFilename]
set CMD_O=-o G:\Report\Profile(20191204_232056).svg
rem stats指定: -stats [stat names]
set CMD_STATS=-stats Exclusive/GameThread/*
rem オプション
set OPTION=%CMD_CSV% %CMD_O% %CMD_STATS%
@echo on
%ENGINE_PATH%%TOOL_PATH% %OPTION%
このバッチファイルを利用すると、-statsで「Exclusive/GameThread/*」と指定しているためGameThreadに関する情報のグラフを作成します。このパラメータを変更したい場合は、4.2. 出力されるプロファイル情報の「Profile項目一覧」から抽出する文字を指定してください。完成後に以下のように出力されます。
#3. 引数一覧
CSVToSVGToolに対して指定する引数については「公式ドキュメント:CSVToSVGTool」に記載されているためご参考ください。
#4. まとめ
CSVToSVGToolを利用することで、CSVProfilerで取得したパフォーマンスキャプチャデータを自動で手軽にグラフ化することができます。この作業は地味に面倒で手間がかかるため、日々のパフォーマンスを監視することに役に立つと思いますので是非ご活用ください。