はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】ビルドパイプラインのプロファイリングを標準機能のみで行う(buildreport.json & chrome://tracing)

はじめに

今回はビルドパイプラインのプロファイリングについて取り上げたいと思います。

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をドラッグ&ドロップすれば表示されます。

tracing

Beeとは

Unity中の人のブログ記事でBeeビルドシステムを言及しています。
blog.unity.com

// 一部抜粋
幸いなことに、Unity にはすでにグラフベースのビルドシステムがありました。これは主にエディターとプレイヤーのランタイムのビルドに使われています。このシステムは Bee ビルドシステムと呼ばれ、ビルドグラフを記述するために C# API を使用しています。Bee は、私たちがサポートしているすべてのプラットフォームに対応しており、社内の多くの Unity 開発者がすでに慣れ親しんでいることから、エディタースクリプトのコンパイルとプレイヤーのビルドを Bee で再実装することにしました。

インクリメンタルビルドパイプラインによるプレイヤーのビルドの高速化 | Unity Blog

一応公式ドキュメントにもBee.Coreなるものが記載されてたりします。(publicなものはないので何も分からないが)
docs.unity3d.com

またUnityCsReferenceUnityCsReference/Editor/Mono/Scripting/ScriptCompilation/の中にBeeDriverというBee関連ぽそうなコードも入ってました。

github.com