コンテンツにスキップ

プロファイラ

開いているシーンに置いた Udon プログラムについて、命令数と extern の呼び出し回数をブラウザに表示します。TsukimiSharp 以外のコンパイラが作ったプログラムも表示します。

  1. メニューの TsukimiCode から Tsukimi Profiler を選びます
  2. Unity エディタが 127.0.0.1 のポートを 1 つ開き、ブラウザで画面を開きます
ポート8787 から順に、空いているポートを使います。候補がすべて使われているときは、コンソールにエラーが出ます
ブラウザが開かないとき開く URL がコンソールに出ます
画面の中身メニューを選んだ時点のシーンの内容です。シーンやコードを変えたあとは、メニューをもう一度選びます
ポートを開く時点メニューを選んだときだけです。エディタの起動時には開きません
画面の要素内容
Program表示するプログラムを選びます。同じプログラムを複数置いているときは、置いた数が名前に付きます
Mapエントリポイントとループの入れ子を図で表示します
Table同じ内容を数の表で表示します
Code実行される命令と、デコンパイルした疑似コードを表示します
Measure表示中のプログラムを実行して、エントリポイントごとの extern の呼び出し回数を数えます
数数え方
instructionsそのメソッドまたはループの範囲にある命令の数
externs (static)そのメソッドまたはループの範囲にある extern の数。呼び出し先のメソッドの中身は含みません
self範囲の数から、すぐ内側のループの範囲にある数を引いたもの
externs (measured)Measure で実行したときに、エントリポイントが呼び出した extern の回数。呼び出し先のメソッドの中で呼んだ回数も含みます
ns / iterationループを 1 周したときの実行時間の概算(ナノ秒)。周回数は掛けません
読み方意味
静的な数だけで見たときコードがどこに在るかを表します。ループが何周するかを含まないので、時間がどこで使われるかは表しません
実測 > 静的そのエントリポイントが別のメソッドを呼び出しています
実測 < 静的その実行では通らなかった分岐があります
ループの実測出ません。実行は、どの行が呼び出したかを記録していないためです
操作内容
Chart図の形を Treemap と Icicle から選びます。開いた時点は Treemap です
Weight面積に使う数を externs (static)・instructions・externs (measured) から選びます。externs (measured) では、実測の数を持たないループが斜線で表示されます
ブロックを押すそのメソッドやループへ拡大します
操作・表示内容
Budget (externs)extern の回数の目安を入れます。実測があれば実測、無ければ静的な数で比べ、超えた行に over が付きます
Over budget onlyover の付いた行だけを表示します
Flatten & sort入れ子をやめて並べ替えます。列の見出しを押しても並べ替わります
every frame毎フレーム呼ばれるエントリポイントに付きます
really a method callループの形をしているが、実際にはファイルの前の方に在るメソッドの呼び出しである行に付きます
操作・表示内容
Instructions最適化の後に実際に実行される命令を表示します。extern の行は色が変わり、左の縦線の数がその行を囲むループの深さです
extern lines onlyextern の行だけを表示します
Decompiled命令から組み直した疑似コードを表示します。書いたソースそのものではありません。TsukimiSharp のプログラムだけで表示されます
左の一覧エントリポイントごとに、実測と静的な extern の数を measured / static で並べます
実行する時点Measure を押したときだけです。メニューを選んだ時点では実行しません
対象表示中のプログラム 1 本です。TsukimiSharp のプログラムだけが対象です
実行のしかた外から呼べるエントリポイントを、フィールドが既定値のままの状態で 1 回ずつ実行します。同じプログラムなら、何度押しても同じ数になります
実行中のエディタそのまま操作できます。結果を待つのはブラウザの画面だけです
実行されなかったエントリポイント数を出さず、did not run と表示します。0 回とは区別されます
数の範囲既定値の状態で通った経路の回数です。実際に遊んだときの回数ではありません