つくるの大好き。

つくるのが大好きな人の記録。

MacBook Pro (M1 Pro)のUnity Android Build ベンチマーク

お久しぶりです!
MacBook Pro 16-inch が届きました!CPUはM1 Proを選択しています。
とにかく物凄い性能だと言われていますが自分がよく使うユースケースでどれくらい凄いのかベンチマークを取ってみました。

f:id:peugeot-106-s16:20211101131246j:plain
MacBook Pro 16-inch

1.ユースケース

僕は普段Android / iOS用のライブラリやSDK、ツールの設計開発を行なっています。
開発言語はC++(Android Studio, Xcode)とUnityです。
カメラ系のものなので基本的に低レイヤのC++実装部で処理を行ない、高レイヤのUnityとやり取りをします。
動作確認は基本的にはUnityでビルドを行ない、実機へアプリを転送して行うことになります。 そのビルド時間はだいたい5分ぐらいの印象です。

この 5分というのはその間に他のことをするには短いけれど待つには長い です。

絶妙にどうしようもない時間です(笑)
僕の場合、チームからプルリクエストが送られてくるのでソースコードレビューをすると共に、動かしてみないとわからない変更については都度チェックアウトしてプロジェクトを開き、ビルドして動作確認をします。
その度にビルド5分です。
動かした瞬間うまく動かなかったりしたらそのビルドは無駄になり、フィードバックして直ったと連絡を受けるとまたビルドです。
仕事時間の大半がUnityビルドに費やされると言っても過言ではない日があるので
1分1秒でもビルドは短くしたい のです。
僕は限りある人生の時間をもっと有効に使いたいんです!

それで今回は UnityプロジェクトをオープンしてAndroidアプリをビルドする というユースケースベンチマークを取ってみたいと思います。

サンプルに使用するUnityプロジェクトはこちら。

github.com

2.比較環境

A: G-Tune (NG-N-i5750) B: MacBook Pro (13-inch, 2020) C: MacBook Pro (16-inch, 2021)
CPU Core i7-9750H 2.60GHz M1 M1 Pro
Memory 32GB 16GB 32GB
Storage SSD SSD SSD
OS Windows 11 Pro 21H2 macOS Monterey 12.0.1 macOS Monterey 12.0.1
価格 約30万円 約20万円 約40万円

マウスコンピュータのG-Tune ゲーミングノートをベンチマークの基準としました。これは約2年前に購入ししたものです。
MacBook Pro はM1 Proの機体に加えM1を搭載した13-inch も用意しました。M1 Proになるとどれだけ性能か変わるか楽しみですね!!

3.比較結果

というわけで、結果どん!
かかった時間に加え、基準であるG-Tune対して削減された秒数、高速化率を求めています。
また、同じようにM1に対してM1 Proで削減された秒数、高速化率も求めています。
(なお処理時間計測はストップウォッチで行なっているため若干の誤差はあります。)

f:id:peugeot-106-s16:20211101141313p:plain
比較結果

実行したアクションの流れは下記です。

  • Libraryフォルダなどのテンポラリフォルダを削除した状態でプロジェクトを開く x 3回
  • ビルドプラットフォームをAndroidに切り替える
  • ビルドする(インクリメンタルビルドが有効なので、初回と2-5回目の平均を分けて求める)
  • Unityのバージョンを変更してビルドする(初回と2-5回目の平均を別に求める)

4.考察

4-1.Unity2020からUnity2021に移行すると

  • 初回ビルドは、M1 Pro(C)以外は2020のほうが速い。インクリメンタルビルドの準備に時間がかかるのかも。
  • 2回目以降のビルドは物凄く速くなる。所要時間は半分程度になる。

同一プロジェクトを繰り返しビルドすることが多い人はUnity2021を使えばそれだけで働き方改革ができる!

4-2.G-Tune(A)からM1(B)に移行すると

  • Unity Projectオープンは133%の高速化
  • 初回ビルドは160%の高速化
  • 2回目以降のビルドは125-145%の高速化

30万円のPCから20万円のPCへ乗り換えて総じて150%近くの時間短縮ができる。なんで乗り換えないの!?レベル

4-3.G-Tune(A)からM1 Pro(C)に移行すると

  • Unity Projectオープンは161%の高速化
  • 初回ビルドは165-172%の高速化
  • 2回目以降のビルドは130-149%の高速化

30万円のPCから40万円のPCへ乗り換えて総じて160%近くの時間短縮ができる。凄い!凄いけど投資もそれなりだよね!

4-4.M1(B)からM1 Pro(C)に移行すると

  • Unity Projectオープンは141%の高速化
  • 初回ビルドは114-129%の高速化
  • 2回目以降のビルドは107%の高速化

プロジェクトを開いてからの初回ビルドは速くなった!けどビルドはそんなに変わらん?

5.まとめ

以上ベンチマーク結果をまとめると、僕のユースケースにプロジェクトオープンと初回ビルドが高速化されるM1 Pro 搭載 MacBook Pro はベストマッチだということがわかりました!

ただ正直多くのUnityでビルドする方が M1 から M1 Pro / Max に乗り換えるほどでもない ということも見えました。
ただ今回はUnity以外のアプリは終了させたクリーンな環境でテストしたので、ブラウザで多くのタブが開き、Android StudioXcodeなどの別のツールを立ち上げメモリを消費した状態ではもっと大きな差が出そうです。
実際、ビルド以外の普通の操作のキビキビ感はM1 Pro の恩恵だなと感じています。

現在非M1のPCをお使いの方はM1に乗り換えない理由は無いと思いました。

うまくて速くて安いからです

また驚くべき事実として、まだUnityやそこから呼ばれるJava, GradleなどのツールはM1に最適化されていません。
追って最適化が行われるとまた劇的に速くなると期待できます。これはやばい(語彙).

f:id:peugeot-106-s16:20211101174602p:plain.

M1 Pro / M1 Max 搭載のMacBook Proについてはベンチマーク記事がたくさん出ていますが自分が実用するユースケースとは乖離があるので自分で調べてみるとさまざまな気づきがありました。
また、Unityでデバイス向けIL2CPPビルドを多く行う方にとっても参考にしてもらえる情報になるのではないかと思います。

さて、じゃあ節約できるようになった時間でどれだけコストが減るのかというお金面はあまり触れていません。
次回、じゃあ乗り換えると何円お得なの!?っていうのを計算して記事を書く予定です。