Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jetpack Composeの スクロールパフォーマンス改善を検証した話

umsys
March 05, 2024

Jetpack Composeの スクロールパフォーマンス改善を検証した話

umsys

March 05, 2024
Tweet

More Decks by umsys

Other Decks in Programming

Transcript

  1. 自己紹介 株式会社ZOZO
 X: @umsys_
 Bluesky: @umsys.bsky.social 
 GitHub: https://github.com/umsys 


    
 内山 雅由
 • 車の運転とゲームとハリネズミが大好きです。 
 • 最近はポケモンカードにハマっています。 
 • 月曜日に治療した虫歯が神経に近かったため、 
 半年くらい40℃前後のものしか飲食できなくなりました。 
 つらいです。

  2. Compose 1.6.0 • 全体的にパフォーマンスが大幅に向上 • スクロール パフォーマンスが20% 向上(1.5.0から比較して) • 起動時間が12%

    向上(1.5.0から比較して) • ほとんどのアプリでは最新バージョンにアップグレードするだけで OK • 他のコードを変更する必要はない 引用:https://android-developers.googleblog.com/2024/01/whats-new-in-jetpack-compose-january-24-release.html
  3. 検証環境 / 使用ツール • 検証端末:Pixel7(Android14) • メトリクス測定:Macrobenchmark ◦ N =

    5 ◦ CompilationMode.DEFAULT ▪ GooglePlay経由でインストールした状態を再現 • JetpackCompose1.5.4 / 1.6.0、Coil2.5.0 / 2.6.0の 組み合わせでそれぞれ計測
  4. メトリクス • timeToInitialDisplayMs ◦ 初期表示までの時間 • frameDurationCpuMs ◦ UI スレッドと

    Renderスレッドの両方でフレームの生成に CPU でかかった 時間。 • frameOverrunMs ◦ 指定されたフレームが期限を超過した時間。 ◦ 正の数値はフレーム落ちや目に見えるジャンクまたはスタッターを示します。 →すべての数値は低ければ低いほどパフォーマンスが高い 引用:https://developer.android.com/topic/performance/benchmarking/macrobenchmark-metrics?hl=ja
  5. グラフ作成:chatGPT 253.1 286.4 270.9 261.9 278.6 307.7 283.5 266.0 494.5

    548.3 421.1 395.4 リリースノート通り Coil 2.6.0によって 遅い初期化を修正がされている。
  6. 4.7 4.1 4.4 4.6 7.1 6.7 7.2 7.3 8.2 7.4

    8.5 8.5 11.6 10.0 13.0 12.2
  7. 4.7 4.1 4.4 4.6 7.1 6.7 7.2 7.3 8.2 7.4

    8.5 8.5 11.6 10.0 13.0 12.2 強いて言うなら、 Compose 1.6.0に上げただけの場合に パフォーマンスが少し向上している
  8. -10.3 -10.5-10.6 -9.4 -3.8 -3.9 -3.9 -3.6 -3.4 -3.7 -3.2

    -3.5 2.4 4.2 9.2 9.2 Coil 2.6.0によって 遅い初期化を修正がされていたが、 P99においてフレームの期限超過時間が 上昇してしまっている。