開いているシーンに置いた Udon プログラムについて、命令数と extern の呼び出し回数をブラウザに表示します。TsukimiSharp 以外のコンパイラが作ったプログラムも表示します。
- メニューの TsukimiCode から Tsukimi Profiler を選びます
- 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 only | over の付いた行だけを表示します |
| Flatten & sort | 入れ子をやめて並べ替えます。列の見出しを押しても並べ替わります |
every frame | 毎フレーム呼ばれるエントリポイントに付きます |
really a method call | ループの形をしているが、実際にはファイルの前の方に在るメソッドの呼び出しである行に付きます |
| 操作・表示 | 内容 |
|---|
| Instructions | 最適化の後に実際に実行される命令を表示します。extern の行は色が変わり、左の縦線の数がその行を囲むループの深さです |
| extern lines only | extern の行だけを表示します |
| Decompiled | 命令から組み直した疑似コードを表示します。書いたソースそのものではありません。TsukimiSharp のプログラムだけで表示されます |
| 左の一覧 | エントリポイントごとに、実測と静的な extern の数を measured / static で並べます |
| |
|---|
| 実行する時点 | Measure を押したときだけです。メニューを選んだ時点では実行しません |
| 対象 | 表示中のプログラム 1 本です。TsukimiSharp のプログラムだけが対象です |
| 実行のしかた | 外から呼べるエントリポイントを、フィールドが既定値のままの状態で 1 回ずつ実行します。同じプログラムなら、何度押しても同じ数になります |
| 実行中のエディタ | そのまま操作できます。結果を待つのはブラウザの画面だけです |
| 実行されなかったエントリポイント | 数を出さず、did not run と表示します。0 回とは区別されます |
| 数の範囲 | 既定値の状態で通った経路の回数です。実際に遊んだときの回数ではありません |