[Upon] M1 Mac所有者向け(これから買おうとしている人も) ネイティブ vs Rosetta

2021年10月5日

自己紹介

Unityなどをやってる中学生のUponです。
ここでは日々の日常についてTwitterみたいな感じで不定期に書いていこうと思います!(目標は週2くらいで更新しようかな??)
SNS
Twitter:https://twitter.com/Upon08126956
Youtube:https://www.youtube.com/channel/UC6hEmZeHoWgpgG1YAPsGLjA

初めに

今回はM1Macを所有しているまたは買おうとしている人向けの記事となっています。
ネイティブ動作するUnityはベータ版のため自己責任でお願いします。

動作環境

OS MacOS Big Sur 11.5.2
CPU M1(8C8T)
GPU M1(8C)
ROM 16GB

ネイティブ対応したUnityのインストールの仕方

ネイティブ対応したUnityのバージョンは2021.2.0.b4となっています。
それはUnityHubから落とすことは不可能なのでWebから落としてUnityHubに追加することになります。(正直自分もよくわからずごちゃごちゃしてたらいけた感じです。)
ダウンロードURL https://unity3d.com/jp/unity/beta/2021.2.0b4

MacOSの部分まで少しスクロールしてUnityEditor(Apple silicon)のところをクリックするとpkgがダウンロードできるのでそこからインストールします。
インストールしてからのやり方についてはここから↓
https://note.com/honour_neat/n/n58de037ab4f5

ネイティブとRosettaの比較

今回の比較したところは以下のものです。

  • プロジェクトを開く時間
  • スクリプトを変更してから変更が完了するまでの時間
  • 素のプロジェクトでのビルド時間
  • 352MBのアセットのインポート時間
  • アセットのサンプルプロジェクトのオクルージョンカリングの時間比較(2)

プラットフォームの変更も試そうと思ったのですが、エラーが出てインストールすることができなかったので今回は断念します。

1 プロジェクトを開く時間 

UnityHubからプロジェクトを選択しエディター画面が表示されるまでの時間を計測したものです。

ネイティブ対応した2021.2.0.b48.5秒
Rosetta動作の2019.3.16f114.1秒

プロジェクトを開く時間はその時々で結構左右されますが、ネイティブ対応した2021.2.0.b4の方が6秒ほど早い結果になりました。

2 スクリプトの変更が完了するまでの時間

三行ほどの簡単なスクリプトを作成しセーブしてから完了するまでの時間の計測したものです。

ネイティブ対応した2021.2.0.b43.1秒
Rosetta動作の2019.3.16f15.4秒

三行ほどのコードで2秒も差が開いているのでもっと量を記述してから保存した場合はもっと差が離れると思うと結構効果は大きいですね。(Rosetta動作が遅すぎるの)

3 プロジェクトのビルド時間

作成して何もしていないプロジェクトのビルド時間を計測したものです。

ネイティブ対応した2021.2.0.b415.4秒
Rosetta動作の2019.3.16f123.0秒

スクリプトの変更の時と同様にあまりいじってないにしては結構差が開いてしまっています。ビルド時間の長いWebGLなどだと結構差が開いてくるかもしれませんね。

4 アセットのインポート時間

インポートボタンを押してからの時間を計測してものです。

ネイティブ対応した2021.2.0.b41分57秒
Rosetta動作の2019.3.16f12分24秒

アセットが352MBあるためかなり時間の差が開いています。これだけ離れてるとかなりの時間短縮になりそうですね。大詰めの時とかだとここら辺の時間が結構効いてきそうです

5 オクルージョンカリング

インポートしたアセットのサンプルプロジェクトのオクルージョンカリングにかかった時間を計測したものです。(設定は一番上のところを0.1にしています。)

ネイティブ対応した2021.2.0.b46分24秒
Rosetta動作の2019.3.16f15分56秒

ここはまさかのネイティブUnityが敗北してしまいました。
やってても明らか遅い感じがしましたし、ベータ版なのでこれから修正されて早くなる可能性もありますし、もしかしたらそこら辺はRosettaが関係していない可能性があります。
なんか納得いかなかったので0.1ではなく1にして計測してみたところネイティブUnityの方が早かったです。なんなんでしょうかw

まとめ

今回はネイティブ対応したUnityとRosetta動作しているUnityの速度を比較してみました。
ベータ版っていうこともあって実際やってみたら動作が安定しないとかバグとかがあったりするのでメインでやるのはまだあまりやらない方がいいのかなって思っています。ですがお試しでやってみるとか、1weekなどで少し使ってみるとかならいいのかもしれませんね。(共同開発とかはバージョン揃えるのが面倒だからやめたほうが相手のためだと思います。)早くベータ版ではなく製品版になって欲しいところです。

Unity

Posted by upon