すべての関数呼び出しのインストルメント化
Enable deep profiling to capture detailed function call information.
読み終わるまでの所要時間 6 分最終更新 1ヶ月前
プロファイラーは、プロファイラーマーカーで明示的にラップされたコードのタイミングのみをプロファイルします。これには、、、または同様のメソッドなど、Unity のネイティブコードからスクリプトコードへの呼び出しの最初のコールスタックの深度が含まれます。
MonoBehaviour.StartMonoBehaviour.Updateスクリプトコードの子サンプルとして視覚化できるのは、Unity の API にコールバックするものだけです。ただし、その API がインストルメント化されている場合、または独自のコードで、プロファイラーマーカーが明示的にインストルメント化されている場合に限ります。パフォーマンスのオーバーヘッドを伴うほとんどの API 呼び出しはインストルメント化されています。例えば、 API を通じてメインのカメラにアクセスすると、 サンプルとして登録されます。
Camera.mainFindMainCamera詳細プロファイリング
すべての関数呼び出しに関するデータを取得して、コードがアプリケーションのパフォーマンスにどのような影響を与えるかを把握する場合は、Deep Profile (詳細プロファイル) の設定を使用できます。Deep Profile の設定を有効にすると、プロファイラーがすべてのスクリプトメソッドにプロファイラーのインストルメンテーションを挿入し、Unity API への最初のコールスタックの深度を含むすべての関数呼び出しを記録します。
詳細プロファイリングはリソースに負荷がかかり、大量のメモリを使用します。そのため、プロファイリング中のアプリケーションの実行速度が大幅に低下します。詳細プロファイリングは、シンプルなスクリプトで構成されている小規模なゲームに最適です。複雑なスクリプトコードを使用すると、アプリケーションで詳細プロファイリングを使用できない場合があります。また、多くの大規模なアプリケーションでは、詳細プロファイリングによって Unity のメモリが不足する場合があります。
詳細プロファイリングの有効化
接続されたアプリケーションからパフォーマンスデータを収集している場合や、Unity エディターでデータを収集している場合は、詳細プロファイリングを有効にすることができます。
ビルドしたアプリケーションの詳細プロファイリングを有効にするには、以下の手順に従います。
- Build Profiles ウィンドウを開きます (File > Build Profiles を選択します)
- アプリケーションのターゲットプラットフォームを選択します
- Development Build 設定を有効にします
- Deep Profiling を有効にします
エディターでデータを収集するときに詳細プロファイリングを有効にするには、以下の手順に従います。
- Profiler ウィンドウを開きます (Window > Analysis > Profiler を選択します)
- プロファイラーツールバーから Deep Profile を選択します
プロファイリングセッションの開始時に、プロファイラーがすべての関数呼び出しをインストルメント化します。