Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

画面レンダリングのパフォーマンスデータについて学ぶ(AppleおよびAndroidアプリ)

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Performance Monitoring は、トレースを使用して、アプリ内の監視対象プロセスに関するデータを収集します。トレースは、アプリ内の 2 つの時点の間でキャプチャされたデータを含むレポートです。

Apple および Android アプリの場合、Performance Monitoring は、アプリケーションのさまざまな画面のレンダリング パフォーマンスを自動的に測定します。 Performance Monitoring は、アプリケーション内のすべての画面の画面レンダリング トレースを作成します。これらのトレースは、次のメトリックを収集して測定します。

アプリケーションのフレームが遅いまたはフリーズすると、ジャンクまたはラグとも呼ばれるデバイスのパフォーマンスが低下する可能性があります。フリーズしたレンダリング フレームのメトリクスを取得すると、パフォーマンスの低い画面を特定し、アプリケーションのレンダリング パフォーマンスを向上させることができます。

トレース テーブルの [画面レンダリング] タブで、画面レンダリング トレースのデータを表示できます。トレース テーブルは、 Firebase コンソールの [パフォーマンス] ページの下部にあります。詳細については、「パフォーマンス データの追跡、表示、およびフィルター処理」を参照してください。

画面レンダリング トレースによって収集された指標

これらのトレースはすぐに使用できるトレースであるため、カスタム メトリックまたはカスタム属性を追加することはできません。

スロー レンダリング フレームとフリーズ フレームは、デバイスのリフレッシュ レートを 60Hz と想定して計算されています。デバイスのリフレッシュ レートが 60 Hz より低い場合、1 秒あたりのレンダリング フレーム数が少なくなるため、各フレームのレンダリング時間が遅くなります。レンダリング時間が遅くなると、より多くのフレームがより遅くレンダリングされるかフリーズするため、より多くの遅いフレームまたはフリーズしたフレームが報告される可能性があります。ただし、デバイスのリフレッシュ レートが 60Hz よりも高い場合、各フレームのレンダリング時間は速くなります。これにより、報告される低速フレームまたはフリーズ フレームが少なくなる可能性があります。これは、Performance Monitoring SDK の現在の制限です。

遅いレンダリング フレーム

このメトリクスは、特定の画面でレンダリングの大幅な遅延が発生したユーザー セッションの割合です。具体的には、このメトリックは、フレームの 50% 以上がレンダリングに 16 ミリ秒以上かかったスクリーン インスタンスの割合です。

冷凍フレーム

このメトリックは、特定の画面で顕著な量のフリーズ フレームが発生したユーザー セッションの割合です。具体的には、このメトリックは、フレームの 0.1% 以上がレンダリングに 700 ミリ秒以上かかったスクリーン インスタンスの割合です。

画面レンダリング トレースはどのように生成されますか?

各画面レンダリング トレースは、アプリケーション内のビュー要素の名前によって識別されます。 Performance Monitoring クライアントは、アプリケーションで使用されるすべてのアクティビティまたはフラグメントの画面レンダリング トレースを作成します。

各画面レンダリング トレースは、次のアクションを実行します。

  • オブジェクトが画面に表示されると、すべてのアクティビティとフラグメント クラスに対して開始されます。 OnActivityStarted()の場合はOnFragmentResume() 、フラグメントの場合は OnFragmentResume() 。

  • オブジェクトが画面に表示されていない場合、アクティビティとフラグメント クラスごとに停止します。 OnActivityStopped()の場合はOnFragmentPaused() 、フラグメントの場合は OnFragmentPaused() 。

パフォーマンス データの追跡、表示、フィルタリング

リアルタイムのパフォーマンス データを表示するには、アプリがリアルタイム データ処理と互換性のある Performance Monitoring SDK バージョンを使用していることを確認してください。リアルタイムのパフォーマンス データについて詳しくは、こちらをご覧ください

ダッシュボードで主要な指標を追跡する

主要な指標の傾向を知るには、パフォーマンスダッシュボードの上部にある指標ボードに追加します。週ごとの変更を確認することでリグレッションをすばやく特定したり、コードの最近の変更によってパフォーマンスが向上していることを確認したりできます。

Firebase Performance Monitoring ダッシュボードのメトリクス ボードの画像

メトリクス ボードにメトリクスを追加するには、次の手順に従います。

  1. Firebase コンソールのパフォーマンスダッシュボードに移動します。
  2. 空のメトリック カードをクリックし、既存のメトリックを選択してボードに追加します。
  3. メトリックの置換や削除など、その他のオプションについては、入力済みのメトリック カードでをクリックします。

メトリクス ボードには、収集されたメトリクス データが経時的にグラフ形式と数値の変化率の両方で表示されます。

ダッシュボードの使用について詳しくは、こちらをご覧ください。

コンソールで画面のパフォーマンスを表示する

トレースを表示するには、Firebase コンソールのパフォーマンスダッシュボードに移動し、トレース テーブルまで下にスクロールしてから、適切なサブタブをクリックします。テーブルには、各トレースのいくつかの上位メトリックが表示され、特定のメトリックの変化率でリストを並べ替えることもできます.

Performance Monitoring は Firebase コンソールのトラブルシューティング ページを提供し、メトリックの変化を強調表示するため、アプリやユーザーに対するパフォーマンスの問題に迅速に対処し、影響を最小限に抑えることが容易になります。たとえば、次のシナリオで、潜在的なパフォーマンスの問題について学習したときに、トラブルシューティング ページを使用できます。

  • ダッシュボードで関連する指標を選択すると、大きな差があることに気付きます。
  • トレース テーブルで、最大のデルタを一番上に表示するように並べ替えると、大幅な変化率が表示されます。
  • パフォーマンスの問題を通知する電子メール アラートを受け取ります。

トラブルシューティング ページには、次の方法でアクセスできます。

  • メトリック ダッシュボードで、[メトリックの詳細を表示] ボタンをクリックします。
  • 任意の指標カードで、 => 詳細を表示を選択します。トラブルシューティング ページには、選択したメトリックに関する情報が表示されます。
  • トレース テーブルで、トレース名またはそのトレースに関連付けられている行のメトリック値をクリックします。
  • 電子メール アラートで、[今すぐ調査] をクリックします。

トレース テーブルでトレース名をクリックすると、関心のあるメトリックにドリルダウンできます。 [フィルター ] ボタンをクリックして、属性別にデータをフィルター処理します。次に例を示します。

属性でフィルタリングされた Firebase Performance Monitoring データの画像
  • アプリのバージョンでフィルターして、過去のリリースまたは最新のリリースに関するデータを表示します
  • デバイスでフィルタリングして、古いデバイスがアプリをどのように処理するかを確認します
  • でフィルター処理して、データベースの場所が特定の地域に影響していないことを確認します

トレースのデータの表示について詳しくは、こちらをご覧ください

フラグメント属性

Android アプリケーションでは、フラグメントを別のアクティビティまたはフラグメントで再利用できます。フラグメントのパフォーマンスは、フラグメントがレンダリングされているフラグメントまたはアクティビティによって異なる場合があります。次の属性を使用して、フラグメントが関連付けられているアクティビティまたはフラグメントに基づいて、親フラグメント内でのフラグメントのパフォーマンスに関する詳細情報を取得します。と:

フラグメント メトリクスのパフォーマンス モニタリング ダッシュボードのイメージ
  • Hosting_activity — フラグメントをホストするアクティビティ。ホスティング アクティビティ内でのフラグメントのパフォーマンスを理解できます。
  • Parent_fragment — 調査しているフラグメントの親フラグメント。親フラグメント内でのフラグメントのパフォーマンスを理解できます。親フラグメントがない場合、属性はNo Parentに設定されます。

次のステップ