ベースライン プロファイルにより、コードの実行速度が最大 30% 向上 インタープリタとジャストインタイム(JIT)コンパイル 手順 一般的なユーザージャーニーの トラブルシューティングを行えますベースライン プロファイルを使用すると、ユーザー ジャーニーを アプリの起動の改善やジャンクの削減などに役立つ ユーザー維持率や評価などのビジネス指標の向上につながります。 ベースラインの詳細 プロファイル。
Android カレンダー チームはベースライン プロファイルを実装し、約 20% のアプリが確認されました。 起動時間が短縮され、遅いフレームやフリーズしたフレームが約 50% 減少しました。こちらが パフォーマンス面の成功を達成するために何を エンドツーエンドで行ったのか 影響の測定方法にベースライン プロファイルを使用することにしました。
クラウド プロファイルとベースライン プロファイル
Android のカレンダー チームはすでに Cloud プロファイルでは、 は、実際のユーザーに基づくプロファイルに基づく最適化(PGO)手法の 1 つです。 記録します。クラウド プロファイルとベースライン プロファイルが 比較:
プロファイル タイプ | 設定 | 含まれるユーザー ジャーニー | ユーザーベースが次の場合に最適に機能 | 実現した効果 | サポートされている Android バージョン |
---|---|---|---|---|---|
クラウド プロファイル |
デフォルトで有効 |
実際のユーザーデータに基づき自動的に選択 |
大 |
数日以内 |
Android 9(API レベル 28)以降 |
ベースライン プロファイル |
自分で構成 |
自分で選択 |
すべてのサイズ |
即時 |
Android 7(API レベル 24)以降 |
Android カレンダー チームがベースライン プロファイルを追加した主な理由の 1 つは、 より速い週次リリースサイクルに移行していたからです。 クラウド プロファイルを使用するとパフォーマンスが大幅に向上しますが、これには 1 ~ 2 日かかります アプリのリリース後に最大限の効果を得るのに 現実のユーザーデータを集約できます。クラウド プロファイルをベースラインで補完する プロファイルにより、ユーザーが最高のパフォーマンス向上を実感する時間が長くなる リリースする前に確認できます
さらに、Android カレンダー チームが次のことを行えるようにすることも重要でした。 対象とするクリティカル ユーザー ジャーニー(CUJ)を これは、ベースライン プロファイルを使用して行うことができます。
通常は、クラウド プロファイルに加えてベースライン プロファイルを使用することをおすすめします。 パフォーマンスが最大限に高まるようにする必要があります。
含まれるユーザー ジャーニー
Android カレンダー チームは、ベースライン プロファイルに次の 2 つの CUJ を含めることにしました。
- スケジュール ビューでアプリを開く: 最初はデフォルト ビューなので、 アプリを初めて使用するユーザーや できます。
- [月] ビューでアプリを開く: ユーザーに基づいて、多くのユーザー向けに選択されたビュー 分析できますユーザーがどのようにアプリを使用しているかを追跡するには、 Firebase。
一般的に、ビジネスにとって収益性の高い CUJ を追加する必要があります( CUJ などがあります。P-MAX を選択すると 最適化する CUJ。最適化する CUJ 一致します。
実装
Android カレンダー チームは、Android アプリの Jetpack Macrobenchmark ライブラリ ベースライン プロファイルを生成して、社内ツールやリソースとの統合を容易に 一般的なスケーラビリティは重要です
スケジュールどおりにアプリを起動するための Macrobenchmark テスト構成は次のとおりです view:
@Test
fun generateProfile() =
baselineProfileRule.collect(PACKAGE_NAME, includeInStartupProfile = true) {
startActivityAndWait()
// Verify pre-existing recurring events and tasks are shown.
device.waitAndFindObject(By.text("Recurring event"), 20_000)
device.waitAndFindObject(By.text("Recurring task"), 20_000)
// Open drawer and verify selected view.
device.findObject(By.desc("Show Calendar List and Settings drawer")).click()
device.waitAndFindObject(By.desc("Schedule view, Selected"), 1_000)
}
管理されたリリースを使用して影響を測定する
ベースライン プロファイルは、同梱される APK と密接に結びついているため、 組み込まれていないと標準的な A/B テストを実行できない その影響を把握できますAndroid カレンダー チームは 管理されたリリースを使用して影響を正確に測定し、 一部のユーザーにのみ新しいバージョンをリリースし、 以前のリリースと類似したバージョンのユーザーに リリースされます
ベースライン プロファイルを使用すると、次のような 複数の領域で改善が行われています。これらの統計情報は、さまざまなデータ すべてのユーザー(スケジュール ビューと月ビューで開始したユーザー) ユーザーも大きなメリットを得られますが、他にも次のようなメリットがあります。 カレンダー データの読み込みなど、共有プロセスの最適化 データベースです
- インタラクティブ アプリの起動(最も一般的なシナリオ)のレイテンシの中央値が 775 ミリ秒~ 644 ミリ秒(17%)
- コールド スタート レイテンシの中央値が 1,058 ミリ秒から 901 ミリ秒(15%)に減少
- ウォーム スタート レイテンシの中央値が 453 ミリ秒から 378 ミリ秒に減少(17%)
- スケジュール視聴回数と月視聴回数でジャンクのあるフレームレートの中央値が 42 ~ 60% 減少
クラウド プロファイルをベースラインと併用する場合は、 プロファイルの改良点は、 最初の週にクラウド プロファイルが生成されるとき。ただし、 ベースライン プロファイルを他のものの上に置くことで、パフォーマンスの大幅な向上が観察される 確認できます
ツールや機能の詳細については、次のリソースをご覧ください。