はじめに
今回はビルドパイプラインのプロファイリングについて取り上げたいと思います。
Unityでコンパイルプロセスの可視化ツールとして、Compilation Visualizer
が有名です。
www.hanachiru-blog.com
ただ外部ツールなので、導入に少し手間が必要ではあります。またCompilation Visualizer
はアセンブリのコンパイル可視化なので、ビルドパイプライン全体の可視化ができる点では今回紹介する手法の方がより広い範囲でプロファイリングすることが可能です。
対応バージョン
Unity 2021.2から?(要調査)
手順
ビルドを行うと、[Project Folder]/Library/Bee/buildreport.json
が生成されていると思います。
これをChrome
内蔵のプロファイリングツールであるtracing
を活用して解析します。
www.chromium.org
Chrome
のアドレスバーにchrome://tracingz
と入力し、該当するbuildreport.json
をドラッグ&ドロップすれば表示されます。
Beeとは
Unity中の人のブログ記事でBee
ビルドシステムを言及しています。
blog.unity.com
// 一部抜粋
幸いなことに、Unity にはすでにグラフベースのビルドシステムがありました。これは主にエディターとプレイヤーのランタイムのビルドに使われています。このシステムは Bee ビルドシステムと呼ばれ、ビルドグラフを記述するために C# API を使用しています。Bee は、私たちがサポートしているすべてのプラットフォームに対応しており、社内の多くの Unity 開発者がすでに慣れ親しんでいることから、エディタースクリプトのコンパイルとプレイヤーのビルドを Bee で再実装することにしました。
インクリメンタルビルドパイプラインによるプレイヤーのビルドの高速化 | Unity Blog
一応公式ドキュメントにもBee.Core
なるものが記載されてたりします。(public
なものはないので何も分からないが)
docs.unity3d.com
またUnityCsReference
のUnityCsReference/Editor/Mono/Scripting/ScriptCompilation/
の中にBeeDriver
というBee
関連ぽそうなコードも入ってました。