iOS アプリと Android アプリの自動所要時間トレース

トレースは、アプリ内の 2 つの時点の間で取得されたパフォーマンス データのレポートです。Performance Monitoring によって、iOS アプリと Android アプリ向けに次の所要時間トレースが自動的に実施されます。

  • アプリ起動トレース - ユーザーがアプリを開いてからアプリが応答するまでの時間を測定します。

  • バックグラウンド アプリのトレース - アプリがバックグラウンドで実行されている時間を測定します。

  • フォアグラウンド アプリのトレース - アプリがフォアグラウンドで実行されていてユーザーが利用できる時間を測定します。

  • 画面トレース - 画面の存続期間を通じて低速なフレームとフリーズしたフレームを測定します。

    Firebase コンソールでは、画面トレースが他のトレースとは別のテーブルに表示されるため、アプリのさまざまな画面のパフォーマンスを簡単に調査できます。

自動所要時間トレースの定義

Performance Monitoring は、アプリのメソッド呼び出しと通知を使用して各タイプの自動トレースの開始または停止を判断します。

アプリ起動トレース

このトレースでは、ユーザーがアプリを開いてからアプリが応答するまでの時間を測定します。コンソールでは、トレース名は _app_start、報告される指標は [期間] です。

  • アプリケーションが最初の Object をメモリにロードすると開始します。

  • アプリケーションが UIApplicationDidBecomeActiveNotification 通知を受信した後に発生する、最初の正常な実行ループの後に停止します。

バックグラウンド アプリのトレース

このトレースでは、アプリがバックグラウンドで実行されている時間が測定されます。コンソールでは、トレース名は _app_in_background、報告される指標は [期間] です。

  • アプリケーションが UIApplicationWillResignActiveNotification 通知を受け取ると開始します。

  • UIApplicationDidBecomeActiveNotification 通知を受け取ると停止します。

フォアグラウンド アプリのトレース

このトレースでは、アプリがフォアグラウンドで実行され、ユーザーが利用できる時間が測定されます。コンソールでは、トレース名は _app_in_foreground、報告される指標は [期間] です。

  • アプリケーションが UIApplicationDidBecomeActiveNotification 通知を受け取ると開始します。

  • UIApplicationWillResignActiveNotification 通知を受け取ると停止します。

画面トレース

このトレースでは、画面の存続期間を通じて低速なフレームとフリーズしたフレームが測定されます。このトレースで報告される指標は、レンダリングが遅いフレームとフリーズしたフレームです。

Firebase コンソールでは、画面トレースが他のトレースとは別のテーブルに表示されるため、アプリのさまざまな画面のパフォーマンスを簡単に調査できます。

  • アプリが viewDidAppear: を呼び出すと、keyWindow 内のすべての UIViewController について開始されます。

  • アプリが viewDidDisappear: を呼び出すと停止します。

画面トレースは、正規のコンテナビュー コントローラをキャプチャしません。

コンソールでの自動所要時間トレースのモニタリング

  1. Firebase コンソールで [Performance] ダッシュボードに移動します。

  2. [デバイス] タブでは次のような操作ができます。

    • すべてのトレース(および追加した任意のカスタム トレース)で収集されたデータのクイック レポートを表示できます。

    • 特定のトレースをクリックして、そのトレースのデータの詳細を確認できます。

    • ダッシュボードの左上にある [フィルタ add] ボタンを使用して、属性を基準にしたデータの基本フィルタを実行できます。

  3. 個別のトレースをクリックすると、収集されたデータの概要がコンソールの指標カードに表示されます。

    • アプリ起動、フォアグラウンド アプリ、バックグラウンド アプリのトレースでは、[期間] の指標が表示されます。

      ダッシュボードの右上にあるオプションを使用して、期間データを集計値または時系列の形式や、アプリのバージョン別の形式で表示できます。

    • 画面トレースの場合は、[遅いレンダリング] と [フリーズしたフレーム] の各指標が表示されます。

      ダッシュボードの右上にあるオプションを使用して、指標のしきい値の範囲にある画面の割合を、集計値または時系列の形式や、アプリのバージョン別の形式で表示できます。

    ダッシュボードの左上にある [フィルタ add] ボタンを使用して、属性を基準にしたデータの基本フィルタを実行できます。

  4. どの指標についても、[もっと見る] をクリックすると、収集されたデータに関する詳細な情報を確認でき、高度な分析機能を使用できます。たとえば、属性を基準にしたデータのフィルタやセグメント化、アプリの利用状況に関するセッションのコンテキスト内のデータの表示といった操作が可能です。

    次のセクションでは、詳細なトレース レポートで使用できる機能について説明します。

所要時間トレース サンプルの詳細を見る

Firebase コンソールで、特定のトレースまたはネットワーク リクエストのセグメントを詳しく知ることができます。記録されたセッションをランダムにサンプリングすると、次の情報が表示されます。

Firebase Performance Monitoring のセッション ページのイメージ

  • CPU: アプリが消費するユーザー時間とシステム時間。

  • メモリ: アプリが使用するヒープメモリの量。ヒープメモリは、作成されたオブジェクト、割り当てが解除されたオブジェクト、アプリケーションが積極的に使用しているオブジェクトなど、動的な割り当てに使用されるメモリです。

  • 個別情報: 開始時間、終了時間、継続時間、リクエスト サイズ、レスポンス サイズなど、トレースまたはネットワーク リクエストの単一インスタンスに関する詳細情報です。

  • 同時インスタンス: 同時に発生したトレースまたはネットワーク リクエストに関する情報です。

  • デバイス属性: アプリのバージョン、モデル、OS のバージョン、無線通信、カスタム属性など、デバイスに関する情報です。

Firebase コンソールでこれらの詳細なサンプルを確認するには、次のいずれかを実行します。

  • アプリのトレースまたはネットワーク要求のいずれかを開き、[セッションを表示] をクリックします。

  • 特定の属性から、属性のセッションのリンクをクリックします。

セッションへのリンクが表示された Firebase Performance Monitoring トレースのイメージ

パーセンタイルによるセッションのフィルタリング

Performance Monitoring が収集するセッションは、各指標のパーセンタイルに分散されます。パーセンタイル範囲が低いセッションは、パーセンタイル範囲が高いセッションよりも指標の値が低くなります。

使用可能なセッションをパーセンタイルでフィルタリングするには、セッションの詳細の上部にあるパーセンタイルのプルダウンを使用します。

Firebase Performance Monitoring のセッション ページのイメージ