適切なプロファイリング方法を選択する

プロファイルは、手動プロファイル収集と ProfilingManager API という 2 つの主な方法で収集できます。

ProfilingManager は、多くのユーザーからデータを収集して分析する場合や、まれな問題をデバッグする場合に使用することをおすすめします。ただし、再現しやすい問題の場合は、手動プロファイリングの方が適している可能性があります。

次の表に、プロファイルを記録する 2 つの方法の違いを示します。

ProfilingManager 手動でのプロファイル収集
プロファイルのタイミング制御 その他 一部を表示
プロファイル ソース ローカル デバイスと一般ユーザー ローカル デバイスのみ
プロファイル出力 削除済み 秘匿化されていない
イベントベースのプロファイリング はい いいえ
プロファイルのカスタマイズ性 一部を表示 その他
スケーラビリティ

以降のセクションでは、プロファイル記録方法の違いについて簡単に説明します。

プロファイルのタイミング制御

ProfilingManager API を使用すると、タイミング プロファイルの初期化が難しい手動プロファイリングと比較して、アプリがプロファイルを開始または停止するタイミングをより細かく制御できます。ProfilingManager を使用すると、予期しない動作のプロファイリングも簡単になります。動作をローカルで再現できない場合でも、プロファイルを収集できるためです。

プロファイル ソース

ProfilingManager を使用すると、一般ユーザーからデータを収集して、パフォーマンスの問題を見つけて修正できます。一方、手動プロファイリングでは、自分のデバイスでのみ問題を再現できます。

プロファイル出力

ProfilingManager と手動収集では、異なる種類のプロファイル出力が生成されます。

  • ProfilingManager を指定すると、秘匿化されたトレースが生成されます。編集されたトレースには、アプリのプロセスに関する情報が表示されますが、システム上の他のアプリのデータは非表示になります。ProfilingManager は、トレースを収集して編集してから返すため、他のアプリのデータを表示しないことでプライバシーを保護しながら、一般ユーザーからトレースを収集できます。

  • プロファイルを手動で収集すると、編集されていないトレースが生成されます。システム トレースを手動で記録すると、出力にはシステムで実行されているすべてのプロセスが含まれることがあります。これらの編集されていないトレースは、デバッグ用のより完全なデータを提供しますが、プライバシー上の懸念からローカルでのみアクセスできます。

イベントベースのプロファイリング

ProfilingManager は、アプリケーション応答なし(ANR)エラーやアプリの起動など、特定のイベントが発生したときにプロファイルを収集することもできます。ProfilingManager は、イベントベースの収集のプロファイルの開始と停止を処理します。

プロファイルのカスタマイズ性

手動プロファイリングでは最も多くのカスタマイズが可能ですが、ProfilingManager ではカスタマイズ オプションが少なくなります。

スケーラビリティ

ProfilingManager は、アプリ デベロッパーが一般ユーザーのプロファイルを記録できる唯一のオプションであるため、トレースをスケーリングする最善の方法です。ProfilingManager を使用すると、大規模なトレースの収集と分析を設定できます。手動プロファイリングはローカルでの使用に限定されます。