【Defold】Profiler API の紹介

2019/08/14Defold, DEVELOP

Defold Engineの Profiler reference に載っている機能を紹介します。ビジュアルで説明した方が分かりやすそうなものに関しては、スクリーンショットも付けています。

確認バージョン

1.2.159

関数

profiler.enable_ui

-- Profilerを表示します。
profiler.enable_ui(true)
一度に全て確認したい時はこれ

profiler.get_cpu_usage

アプリケーションのCPU使用率を取得する。プラットフォーム「HTML5」では使用不可。

local percent = profiler.get_cpu_usage()
print(percent)

profiler.get_memory_usage

アプリケーションのメモリ使用率を取得する。 単位はbyte。プラットフォーム「HTML5」では使用不可。

-- Byteで取得できる
local byte = profiler.get_memory_usage()
print(string.format("%d byte", byte))
-- KB変換
local kb = (byte + 1023) / 1024;
print(string.format("%d kb", kb))
-- MB変換
local mb = (kb + 1023) / 1024;
print(string.format("%d mb", mb))

profiler.set_ui_mode

プロファイラの内容を設定します。

profiler.MODE_RUN デフォルト設定。最後のフレームを表示する
profiler.MODE_PAUSE現在表示されているフレームで停止した内容を表示する
profiler.MODE_SHOW_PEAK_FRAME 現在表示されているフレームで停止するが、停止したフレームが遅い場合は新しいフレームで停止する。
profiler.MODE_RECORDプロファイリング内容をバッファに記録する。 profiler.MODE_PAUSEや profiler.MODE_RUN を呼ぶと記録は停止する。
function start_recording()
    -- 計測の記録開始
     profiler.set_ui_mode(profiler.MODE_RECORD)
end
function stop_recording()
    -- 計測の記録終了
    profiler.set_ui_mode(profiler.MODE_PAUSE)
end

profiler.recorded_frame_count

profiler.MODE_RECORDで記録し始めてからのフレーム数を取得する。

function init(self)
	profiler.enable_ui(true)
	profiler.set_ui_mode(profiler.MODE_RECORD)
end
function update(self, dt)
	local recorded_frame_count = profiler.recorded_frame_count()
	print(string.format("recorded_frame_count %d", recorded_frame_count))
end

profiler.view_recorded_frame

profiler.MODE_RECORDで記録しているフレームバッファから、指定したフレームのプロファイル結果を表示する。

profiler.view_recorded_frame({distance = -1})

profiler.set_ui_view_mode

Profiler表示の見た目を変更します。デフォルトは profiler.VIEW_MODE_FULL

profiler.VIEW_MODE_MINIMIZED最小限のプロファイリングのみ表示する。
profiler.VIEW_MODE_FULL全てのプロファイリングのみ表示する
profiler.VIEW_MODE_MINIMIZED を指定した場合の表示。1フレームにかかっている時間がmsで表示される。

profiler.set_ui_vsync_wait_visible

プロファイラ表示が有効である場合のVSync.WaitをON・OFFできる。

-- VSync.Wait表示をOFF
profiler.set_ui_vsync_wait_visible(false)

Posted by kazupon