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


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

Apple アプリと Android アプリの場合は、Performance Monitoring によってにアプリ内の異なる画面のレンダリング パフォーマンスが自動的に測定されます。Performance Monitoring は、アプリの画面ごとに画面レンダリング トレースを作成します。これらのトレースは、次の指標を収集して測定します。

アプリのフレームの遅延やフリーズが、デバイスのパフォーマンスの低下(ジャンクまたは遅延)につながる可能性があります。フリーズしたフレームと遅いレンダリング フレーム指標をキャプチャすることで、パフォーマンスの低い画面を特定でき、アプリのレンダリング パフォーマンスの改善につながります。

画面レンダリング トレースのデータは、トレース テーブルの [画面レンダリング] タブで確認できます。トレース テーブルは、Firebase コンソールの [パフォーマンス] ページの下部にあります。詳細については、パフォーマンス データの追跡、表示、フィルタリングをご覧ください。

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

これらのトレースは事前構成済みのトレースであるため、カスタム指標やカスタム属性は追加できません。

レンダリングが遅いフレームとフリーズしたフレームは、想定される 60 Hz のデバイス リフレッシュ レートで計算されます。デバイスのリフレッシュ レートが 60 Hz 未満の場合は、1 秒間にレンダリングされるフレームが少なくなるため、各フレームでレンダリング時間が長くなります。レンダリング時間が長くなると、レンダリングが遅くなるフレームやフリーズするフレームが多くなるため、遅いフレームやフリーズしたフレームの報告が増えます。ただし、デバイスのリフレッシュ レートが 60 Hz を超える場合は、各フレームでレンダリング時間が短くなります。これにより、遅いフレームやフリーズしたフレームが報告される回数が少なくなります。これは、Performance Monitoring SDK の現在の制限です。

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

この指標は、特定の画面でレンダリングが著しく遅くなっているユーザー セッションの割合です。具体的には、この指標はレンダリングに 16 ms を超える時間を要したフレームが 50% を上回る画面インスタンスの割合です。

フリーズしたフレーム

この指標は、特定の画面で著しくフリーズしたフレームがあるユーザー セッションの割合です。具体的には、この指標はレンダリングに 700 ms を超える時間を要したフレームが 0.1% を上回る画面インスタンスの割合です。

画面レンダリング トレースの生成方法

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

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

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

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

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

リアルタイム パフォーマンス データを確認するには、リアルタイム データ処理と互換性のあるバージョンの Performance Monitoring SDK がアプリで使用されるようにしてください。詳しくは、リアルタイム パフォーマンス データに関する記事をご覧ください。

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

主要な指標の傾向を確認するには、[Performance] ダッシュボードの上部にある指標ボードに追加します。前週比の変化を確認することで、すみやかに回帰を特定できます。また、最近のコード変更でパフォーマンスが改善されたか確認することもできます。

<span class=Firebase Performance Monitoring ダッシュボード" /> の指標ボードの画像

指標ボードに指標を追加する手順は次のとおりです。

  1. Firebase コンソールのパフォーマンス ダッシュボードに移動します。
  2. 空の指標カードをクリックし、ボードに追加する既存の指標を選択します。
  3. 入力された指標カードの をクリックすると、指標の置き換えや削除などの詳細オプションが表示されます。

指標ボードには、グラフおよび数値(割合の変化)の形式で、収集された指標データが時系列で表示されます。

ダッシュボードの使用で詳細をご確認ください。

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

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

Performance Monitoring により、Firebase コンソールのトラブルシューティング ページに指標の変更がハイライト表示されます。これにより、アプリとユーザーに対するパフォーマンス問題の影響をすばやく把握し、影響を最小限に抑えることができます。トラブルシューティング ページは、潜在的なパフォーマンス問題を確認する際に使用できます。たとえば、次のように使用します。

  • ダッシュボードで関連する指標を選択して差分を確認します。
  • トレース テーブルで、差分の最も大きいものが先頭に表示されるように並べ替えると、割合の変化が大きい箇所を確認できます。
  • パフォーマンスの問題を通知するメール通知アラートが届きます。

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

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

トレース テーブルでトレース名をクリックすると、目的の指標にドリルダウンできます。[フィルタ] ボタンをクリックして、データを属性でフィルタします。次に例を示します。

<span class= 属性でフィルタされた Firebase Performance Monitoring データ" /> の画像
  • 過去のリリースや最新のリリースに関するデータを表示するには、[アプリのバージョン] でフィルタします
  • 古いデバイスにおけるアプリの処理方法を確認するには、[デバイス] でフィルタします
  • データベースのロケーションが特定のリージョンに影響していないことを確認するには、[国] でフィルタします

詳細については、トレースのデータを表示するをご覧ください。

フラグメント属性

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

<span class= Performance Monitoring ダッシュボード /> のフラグメント指標の画像
  • Hosting_activity - フラグメントをホストするアクティビティ。ホスティング アクティビティ内のフラグメントのパフォーマンスを把握できます。
  • Parent_fragment - 調査対象のフラグメントの親フラグメント。 親フラグメント内のフラグメントのパフォーマンスを把握できます。親フラグメントがない場合、属性は [親なし] に設定されます。

次のステップ