Slide 1

Slide 1 text

•マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル マスタ タイトルの書式設定 1 パフォーマンス監視 ツールの活用 Firebase Performance MonitoringとMacrobenchmarkを駆使して Jetpack Compose導入するまで 株式会社リクルート プロダクト統括本部 ビューティープロダクト開発 2グループ 清水大夢

Slide 2

Slide 2 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 2 2 自己紹介
 - 名前
 - Taimu Shimizu(X: @shimizuTaimu) 
 - 所属
 - 『ホットペッパービューティー』Androidアプリ開発チーム 
 - 経歴
 - 2020/10 ~ 2022/3 - ConTechベンチャーにてRailsエンジニア - 2022/4 ~ - 『ホットペッパービューティー』のAndroidエンジニア

Slide 3

Slide 3 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 3 3 本セッションの狙い
 パフォーマンス監視ツールの紹介
 
 実際の現場への導入
 
 データ駆動の意識
 


Slide 4

Slide 4 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 4 4 本セッションの狙い
 パフォーマンス監視ツールの紹介
 
 実際の現場への導入
 
 データ駆動の意識
 


Slide 5

Slide 5 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 5 5 本セッションの狙い
 パフォーマンス監視ツールの紹介
 
 実際の現場への導入
 
 データ駆動の意識
 


Slide 6

Slide 6 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 6 6 本セッションの狙い
 パフォーマンス監視ツールの紹介
 
 実際の現場への導入
 
 データ駆動の意識
 


Slide 7

Slide 7 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 7 7 目次
 - パフォーマンス計測が必要になった背景
 
 - パフォーマンス監視ツールの紹介
 
 - 実際に取得した指標
 
 - 取得した指標を元にした今後の動き
 
 - まとめ


Slide 8

Slide 8 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 8 8 目次
 - パフォーマンス計測が必要になった背景
 
 - パフォーマンス監視ツールの紹介
 
 - 実際に取得した指標
 
 - 取得した指標を元にした今後の動き
 
 - まとめ


Slide 9

Slide 9 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 9 9 パフォーマンス計測が必要になった背景
 Jetpack Composeの導入
 - Viewの複雑度削減 - 生産性の向上 - Jetpackライブラリと の統合

Slide 10

Slide 10 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 10 10 パフォーマンス計測が必要になった背景
 Jetpack Composeの導入
 - Viewの複雑度削減 - 生産性の向上 - Jetpackライブラリと の統合

Slide 11

Slide 11 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 11 11 パフォーマンス計測が必要になった背景
 Jetpack Composeの導入
 - Viewの複雑度削減 - 生産性の向上 - Jetpackライブラリと の統合 - 開発工数 - パフォーマンス影響

Slide 12

Slide 12 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 12 12 パフォーマンス計測が必要になった背景
 Jetpack Composeの導入
 - Viewの複雑度削減 - 生産性の向上 - Jetpackライブラリと の統合 - 開発工数 - パフォーマンス影響 パフォーマンス監視ツール

Slide 13

Slide 13 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 13 13 パフォーマンス計測が必要になった背景
 Jetpack Composeの導入
 - Viewの複雑度削減 - 生産性の向上 - Jetpackライブラリと の統合 - 開発工数 - パフォーマンス影響 パフォーマンス監視ツール

Slide 14

Slide 14 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 14 14 パフォーマンス計測が必要になった背景
 Jetpack Composeの導入
 - Viewの複雑度削減 - 生産性の向上 - Jetpackライブラリと の統合 - 開発工数 - パフォーマンス影響 パフォーマンス監視ツール

Slide 15

Slide 15 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 15 15 目次
 - パフォーマンス計測が必要になった背景
 
 - パフォーマンス監視ツールの紹介
 
 - 実際に取得した指標
 
 - 取得した指標を元にした今後の動き
 
 - まとめ


Slide 16

Slide 16 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 16 16 パフォーマンス監視ツールの紹介
 今回紹介するパフォーマンス監視ツール
 
 - Firebase Performance Monitoring
 
 - Macrobenchmark
 
 - Microbenchmark
 


Slide 17

Slide 17 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 17 17 Firebase Performance Monitoring パフォーマンス監視ツールの紹介


Slide 18

Slide 18 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 18 18 パフォーマンス監視ツールの紹介: Firebase Performance Monitoring
 Firebase Performance Monitoringとは?
 
 - アプリのパフォーマンスを自動収集
 
 - 属性別に指標を収集
 
 - アラートの設定が可能


Slide 19

Slide 19 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 19 19 パフォーマンス監視ツールの紹介: Firebase Performance Monitoring
 - ネットワークリクエスト


Slide 20

Slide 20 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 20 20 - アプリのライフサイクルに関連するトレース
 パフォーマンス監視ツールの紹介: Firebase Performance Monitoring


Slide 21

Slide 21 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 21 21 - 画面のレンダリング
 パフォーマンス監視ツールの紹介: Firebase Performance Monitoring


Slide 22

Slide 22 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 22 22 パフォーマンス監視ツールの紹介: Firebase Performance Monitoring
 Firebase Performance Monitoringの導入(1/2)
 
 ①モジュール(アプリレベル)のGradleファイルに依存関係 を追加する。


Slide 23

Slide 23 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 23 23 パフォーマンス監視ツールの紹介: Firebase Performance Monitoring
 Firebase Performance Monitoringの導入(2/2)
 
 ②ルートレベル(プロジェクトレベル)のGradleファイルに プラグインを追加する。
 
 
 ③モジュール(アプリレベル)のGradleファイルにプラグイ ンを追加する。


Slide 24

Slide 24 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 24 24 パフォーマンス監視ツールの紹介: Firebase Performance Monitoring
 カスタムトレース(1/2)
 
 - 自動で集められる指標に追加して、特定のコードの実行 速度を計測することができる。


Slide 25

Slide 25 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 25 25 パフォーマンス監視ツールの紹介: Firebase Performance Monitoring
 カスタムトレース(2/2)
 
 - @AddTraceアノテーションを使用すると、メソッドの開始 から終了までの時間を指標として取得できる。


Slide 26

Slide 26 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 26 26 パフォーマンス監視ツールの紹介: Firebase Performance Monitoring
 Firebase Performance Monitoringまとめ
 
 - 簡単に導入可能
 
 - 自動収集、手動収集どちらも可能
 
 - アラートの設定可能
 
 - カスタムトレース追加時はプロダクションコードに触れ る


Slide 27

Slide 27 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 27 27 Macrobenchmark パフォーマンス監視ツールの紹介


Slide 28

Slide 28 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 28 28 パフォーマンス監視ツールの紹介: Macrobenchmark
 Macrobenchmarkとは?
 
 - JUnit構文を用いたインストゥルメンテーションテスト
 
 - アプリの起動時間や、スクロール時間などのパフォーマ ンスを測定できる。
 
 - テスト結果はコンソールで確認できると共にJSONファイ ルとして出力できる。


Slide 29

Slide 29 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 29 29 パフォーマンス監視ツールの紹介: Macrobenchmark
 Macrobenchmarkの導入(1/4)
 
 
 
 ①AndroidStudioの [Project]パネルでプロ ジェクトを右クリック して、モジュールを追 加する。

Slide 30

Slide 30 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 30 30 パフォーマンス監視ツールの紹介: Macrobenchmark
 Macrobenchmarkの導入(2/4)
 
 モジュールウィザードにより、ビルドタイプ[benchmark] が、アプリレベルのGradleファイルに追加される。


Slide 31

Slide 31 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 31 31 パフォーマンス監視ツールの紹介: Macrobenchmark
 Macrobenchmarkの導入(3/4)
 
 
 モジュールウィザードによ り、 ExampleStartupBenchmark.k tが追加される。

Slide 32

Slide 32 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 32 32 パフォーマンス監視ツールの紹介: Macrobenchmark
 Macrobenchmarkの導入(4/4)
 
 ②AndroidManifest.xmlにprofileableタグを追加する。


Slide 33

Slide 33 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 33 33 パフォーマンス監視ツールの紹介: Macrobenchmark
 起動時間の測定(1/3)
 
 指定パラメータは - packageName - metrics - iterations - startupMode - measureBlock pressHome() - ベンチマークを基本状態にリセットする。 startActivityAndWait() - デフォルトのアクティビティを開始し、最初の フレームをレンダリングするまで待つ

Slide 34

Slide 34 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 34 34 パフォーマンス監視ツールの紹介: Macrobenchmark
 起動時間の測定(2/3)
 ①Build Variantをbenchmarkに ②AndroidStudioから実行

Slide 35

Slide 35 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 35 35 パフォーマンス監視ツールの紹介: Macrobenchmark
 起動時間の測定(3/3)
 - 実行結果の「最小値」「中央値」「最大値」が出力される。

Slide 36

Slide 36 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 36 36 パフォーマンス監視ツールの紹介: Macrobenchmark
 スクロール時間の測定(1/2)
 setupBlock - 測定しない準備部分を設定。

Slide 37

Slide 37 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 37 37 パフォーマンス監視ツールの紹介: Macrobenchmark
 スクロール時間の測定(1/2)
 setGestureMargin(device.displayWidth / 5) - アプリがシステムナビゲーションをトリガーして、スクロールしないで終了するのを防ぐた めに追加する。

Slide 38

Slide 38 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 38 38 パフォーマンス監視ツールの紹介: Macrobenchmark
 スクロール時間の測定(2/2)
 frameDurationCpuMs - フレームの生成にかかった時間 fameOverrunMs - フレームがどれだけの期間、期限を超過したか

Slide 39

Slide 39 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 39 39 パフォーマンス監視ツールの紹介: Macrobenchmark
 Macrobenchmarkまとめ
 
 - ユーザーに近い状態で測定できる
 
 - プロダクションコードへの影響がない
 
 - CI連携可能
 
 - 自動収集は不可能


Slide 40

Slide 40 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 40 40 Microbenchmark パフォーマンス監視ツールの紹介


Slide 41

Slide 41 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 41 41 パフォーマンス監視ツールの紹介: Microbenchmark
 Microbenchmarkとは?
 
 - JUnit構文を用いたユニットテスト
 
 - コードの実行時間やメモリ割り当て数などのパフォーマ ンスを測定できる。
 
 - テスト結果はコンソールで確認できると共にJSONファイ ルとして出力できる。


Slide 42

Slide 42 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 42 42 パフォーマンス監視ツールの紹介: Microbenchmark
 Microbenchmarkの導入(1/3)
 
 
 
 ①AndroidStudioの [Project]パネルでプロ ジェクトを右クリック して、モジュールを追 加する。

Slide 43

Slide 43 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 43 43 パフォーマンス監視ツールの紹介: Microbenchmark
 Microbenchmarkの導入(2/3)
 
 モジュールウィザードにより、ExampleStartupBenchmark.kt が追加される。
 


Slide 44

Slide 44 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 44 44 パフォーマンス監視ツールの紹介: Microbenchmark
 Microbenchmarkの導入(3/3)
 
 ②新しく追加されたモジュールのGradleファイルに、ベンチ マーク対象のコードを含むモジュールを依存関係として指定 する。


Slide 45

Slide 45 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 45 45 パフォーマンス監視ツールの紹介: Microbenchmark
 runWithTimingDisabled
 - 測定対象外のセットアップコードを記述する。
 


Slide 46

Slide 46 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 46 46 パフォーマンス監視ツールの紹介: Microbenchmark
 Microbenchmarkの実行結果
 - ナノ秒単位で結果が出力される。

Slide 47

Slide 47 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 47 47 パフォーマンス監視ツールの紹介: Macrobenchmark
 Macrobenchmarkまとめ
 
 - コードレベルの実行時間を測定できる
 
 - プロダクションコードへの影響がない
 
 - CI連携可能
 
 - 自動収集は不可能


Slide 48

Slide 48 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 48 48 パフォーマンス監視ツールの紹介: Macrobenchmark
 紹介しなかったパフォーマンス監視ツール
 
 - Profiler
 
 - Perfetto
 


Slide 49

Slide 49 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 49 49 パフォーマンス監視ツールまとめ パフォーマンス監視ツールの紹介


Slide 50

Slide 50 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 50 50 パフォーマンス監視ツールの紹介
 - 今回のJetpackCompose導入においては、案件起案用の指標収集のために、 Firebase Performance MonitoringとMacrobenchmarkを使用することにした。

Slide 51

Slide 51 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 51 51 目次
 - パフォーマンス計測が必要になった背景
 
 - パフォーマンス監視ツールの紹介
 
 - 実際に取得した指標
 
 - 取得した指標を元にした今後の動き
 
 - まとめ


Slide 52

Slide 52 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 52 52 Firebase Performance Monitoring 実際に取得した指標


Slide 53

Slide 53 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 53 53 実際に取得した指標: Firebase Performance Monitoring
 計測対象画面
 - Composeで置き換えしたActivity
 
 - 一部をComposeViewで置き換えたFragment
 
 計測対象指標
 - 置き換え対象Activityのレンダリング時間
 
 - Compose置き換え前後でのActivityのonCreate、Fragment のonCreateViewの実行時間


Slide 54

Slide 54 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 54 54 実際に取得した指標: Firebase Performance Monitoring
 計測対象画面
 - Composeで置き換えしたActivity
 
 - 一部をComposeViewで置き換えたFragment
 
 計測対象指標
 - 置き換え対象Activityのレンダリング時間
 
 - Compose置き換え前後でのActivityのonCreate、Fragment のonCreateViewの実行時間


Slide 55

Slide 55 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 55 55 実際に取得した指標: Firebase Performance Monitoring
 置き換え対象Activityのレンダリング時間測定(1/2)


Slide 56

Slide 56 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 56 56 実際に取得した指標: Firebase Performance Monitoring
 置き換え対象Activityのレンダリング時間測定(2/2)


Slide 57

Slide 57 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 57 57 実際に取得した指標: Firebase Performance Monitoring
 計測対象画面
 - Composeで置き換えしたActivity
 
 - 一部をComposeViewで置き換えたFragment
 
 計測対象指標
 - 置き換え対象Activityのレンダリング時間
 
 - Compose置き換え前後でのActivityのonCreate、Fragment のonCreateViewの実行時間


Slide 58

Slide 58 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 58 58 実際に取得した指標: Firebase Performance Monitoring
 onCreate, onCreateViewの実行時間測定
 
 - @AddTraceアノテーションを使用


Slide 59

Slide 59 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 59 59 実際に取得した指標: Firebase Performance Monitoring
 onCreateの実行時間


Slide 60

Slide 60 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 60 60 実際に取得した指標: Firebase Performance Monitoring
 onCreateViewの実行時間


Slide 61

Slide 61 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 61 61 Macrobenchmark 実際に取得した指標


Slide 62

Slide 62 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 62 62 実際に取得した指標: Macrobenchmark
 計測対象画面
 - Composeで置き換えしたActivity
 
 計測対象指標
 - (Compose置き換え前)RecyclerView使用時のスクロール速度
 
 - (Compose置き換え後)LazyColumn使用時のスクロール速度
 
 備考
 - エミュレーターを使用した。


Slide 63

Slide 63 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 63 63 実際に取得した指標: Macrobenchmark
 RecyclerViewでの指標測定コード


Slide 64

Slide 64 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 64 64 実際に取得した指標: Macrobenchmark
 RecyclerViewでの指標測定コード


Slide 65

Slide 65 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 65 65 実際に取得した指標: Macrobenchmark
 RecyclerViewでの指標測定コード


Slide 66

Slide 66 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 66 66 実際に取得した指標: Macrobenchmark
 LazyColumnでの指標測定コード


Slide 67

Slide 67 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 67 67 実際に取得した指標: Macrobenchmark
 LazyColumnでの指標測定コード


Slide 68

Slide 68 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 68 68 実際に取得した指標: Macrobenchmark
 LazyColumnでの指標測定コード
 semanticsを追加しないとtestTag認識されなかった。


Slide 69

Slide 69 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 69 69 実際に取得した指標: Macrobenchmark
 RecyclerViewの測定結果
 
 
 
 LazyColumnの測定結果
 
 
 


Slide 70

Slide 70 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 70 70 実際に取得した指標: Macrobenchmark


Slide 71

Slide 71 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 71 71 実際に取得した指標: Macrobenchmark
 Compose置き換えによってパフォーマンスが悪化した

Slide 72

Slide 72 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 72 72 実際に取得した指標: Macrobenchmark
 パフォーマンス悪化の原因を調べていると・・
 参照:https://android-developers-jp.googleblog.com/2022/03/improving-app-performance-with-baseline.html

Slide 73

Slide 73 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 73 73 実際に取得した指標: Macrobenchmark
 ベースラインプロファイルとは
 
 - APKに含まれるクラスとメソッドのリスト
 
 - Macrobenchmarkを使用して、作成することが可能
 
 - クラウドプロファイルと違い、リリース後すぐに適用さ れる


Slide 74

Slide 74 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 74 74 実際に取得した指標: Macrobenchmark
 ベースラインプロファイルの作成準備(1/3)
 
 モジュール(アプリレベル)のGradleファイルに profileinstallerライブラリを追加


Slide 75

Slide 75 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 75 75 実際に取得した指標: Macrobenchmark
 ベースラインプロファイルの作成準備(2/3)
 
 appモジュール内に
 benchmarkrules.pro
 を作成


Slide 76

Slide 76 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 76 76 実際に取得した指標: Macrobenchmark
 ベースラインプロファイルの作成準備(3/3)
 
 buildType benchmarkでproguardFilesに benchmark-rules.proを指定


Slide 77

Slide 77 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 77 77 実際に取得した指標: Macrobenchmark
 ベースラインプロファイルの作成(1/3)
 
 


Slide 78

Slide 78 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 78 78 実際に取得した指標: Macrobenchmark
 ベースラインプロファイルの作成(2/3)
 
 


Slide 79

Slide 79 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 79 79 実際に取得した指標: Macrobenchmark
 ベースラインプロファイルの作成(3/3)
 
 
 
 
 
 
 「baseline-prof.txt」にrename
 app/src/main配下に保存する。

Slide 80

Slide 80 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 80 80 実際に取得した指標: Macrobenchmark
 ベースラインプロファイル作成後のRecyclerViewの測定結果
 
 
 
 ベースラインプロファイル作成後のLazyColumnの測定結果
 
 
 


Slide 81

Slide 81 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 81 81 実際に取得した指標: Macrobenchmark


Slide 82

Slide 82 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 82 82 目次
 - パフォーマンス計測が必要になった背景
 
 - パフォーマンス監視ツールの紹介
 
 - 実際に取得した指標
 
 - 取得した指標を元にした今後の動き
 
 - まとめ


Slide 83

Slide 83 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 83 83 取得した指標を元にした今後の動き
 以下指標をまとめ案件検討に持ち込み工数を獲得する。
 
 - 今回取得したパフォーマンス指標
 
 - 置き換えによる見込みコード削減量
 
 - 置き換えの開発工数


Slide 84

Slide 84 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 84 84 取得した指標を元にした今後の動き
 Compose置き換えにおけるパフォーマンス監視体制を敷く。
 
 ①基本的にはFirebase Performance Monitoringでのアラー ト設定での監視
 
 ②アラートに引っかかった画面や、使用頻度の多い重要画面 に関してはベースラインプロファイルを更新する


Slide 85

Slide 85 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 85 85 目次
 - パフォーマンス計測が必要になった背景
 
 - パフォーマンス監視ツールの紹介
 
 - 実際に取得した指標
 
 - 取得した指標を元にした今後の動き
 
 - まとめ


Slide 86

Slide 86 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 86 86 まとめ
 パフォーマンス監視ツールの紹介
 
 実際の現場への導入
 
 データ駆動の意識
 


Slide 87

Slide 87 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 87 87 まとめ
 パフォーマンス監視ツールの紹介
 
 実際の現場への導入
 
 データ駆動の意識
 


Slide 88

Slide 88 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 88 88 まとめ
 パフォーマンス監視ツールの紹介
 
 実際の現場への導入
 
 データ駆動の意識
 


Slide 89

Slide 89 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 89 89 まとめ
 パフォーマンス監視ツールの紹介
 
 実際の現場への導入
 
 データ駆動の意識
 


Slide 90

Slide 90 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 90 90 宣伝


Slide 91

Slide 91 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 91 91 参考文献
 - https://firebase.google.com/docs/perf-mon?hl=ja 
 
 - https://developer.android.com/topic/performance/benchmarking/macrobenchmar k-overview?hl=ja
 
 - https://developer.android.com/codelabs/android-macrobenchmark-inspect?hl=j a#0
 
 - https://developer.android.com/topic/performance/benchmarking/microbenchmar k-overview?hl=ja
 
 - https://android-developers-jp.googleblog.com/2022/03/improving-app-perform ance-with-baseline.html 
 
 - https://developer.android.com/studio/profile/baselineprofiles?hl=ja 


Slide 92

Slide 92 text

マスタ タイトルの書式設定 •マスター テキストの書式設定
 第 2 レベル
 第 3 レベル
 第 4 レベル
 第 5 レベル 92 92 ご清聴ありがとうございました。