テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Instruments を使って Unity アプリをプロファイリングする が素晴らしい

突発的 Unity 講座:Instruments を使って Unity アプリをプロファイリングする
http://vimeo.com/74282011

紹介しているのは、UnityのプロファイラではなくInstrumentsを使って実行環境をチェックする方法について。

InstrumentsはXcodeに付属しているプロファイラで、かなりの細かい部分までをチェック出来る。

Unityのプロファイラと比べて見難いが、かなり正確な値を出してくれるので、何処でメモリを食っているか判断に迷うときは使うと幸せになれる。



動画の手順を纏めると、こんな感じ。
  1. まずUnityプロジェクトをiOS向けビルドする(実はOSX向けビルドでもOK)。
    この時 [Development Build] にチェックを入れる。(入れないとシンボルが取れない)

    スクリーンショット 2013-09-12 22.06.59 

  2. 次にXcodeを開き、 [Edit Scheme...]を選択する。
    その後[Profile ***]を選択し、[Build Configuration]を[Debug]へ変更する。

    スクリーンショット 2013-09-12 22.08.29 

  3. CleanしてBuild。
    (ゴミが残ってる場合があるため)
  4. Profileを選択してInstrumentsを起動。
    メモリをチェックしたければ[Allocations]、CPU負荷を確認したければ[Time Profiler]を選択する。

    スクリーンショット 2013-09-12 22.15.38 


  5. CallTree>CallTreeでCPUにかかった処理時間一覧を確認することが出来る。(メモリでも同様)

    スクリーンショット 2013-09-12 22.17.48 


    曰く、ユーザーが定義したスクリプトの負荷も確認出来るらしく、例えばBehaviourManager::Updateの中のMonoBehaviour::Update>CallUpdateMethodと辿って行くと、最終的にユーザーが定義したメソッドまで辿り着く。



上でも書いたが、実はPC向けビルド(osx向け)もチェック出来る。
手順は同様で、Development Buildにチェックを入れてビルド、

 スクリーンショット 2013-09-12 22.26.39 

Instrumentsを起動した後、Choose Target
 > Choose Targetで先ほどビルドしたプログラムを選択する。そうすると自動的にプログラムが実行し、中身を確認出来る。

スクリーンショット 2013-09-12 22.27.03 

Macは持っているがAppleへお布施していない人はこの方法をお勧め。



動画でも言っているが、Androidにはこのレベルのチェック方法は無いらしい。
Googleに期待。