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

K2コンパイラでビルド速度改善

 K2コンパイラでビルド速度改善

■ イベント
After Kotlin Fest 2024 LT Night
https://sansan.connpass.com/event/320810/

■ 発表者
Bill One Engineering Unit
大塚 丈

■ Bill One 開発エンジニア 採用情報
https://media.sansan-engineering.com/billone-engineer

SansanTech

July 08, 2024
Tweet

More Decks by SansanTech

Other Decks in Technology

Transcript

  1. ⼤塚 丈 Sansan株式会社 技術本部 Mobile Application Group 2022年 Sansan株式会社に新卒として⼊社。 名刺アプリ「Eight」のAndroidアプリの開発と、営業DXサービス

    「Sansan」とEightの両プロダクトをまたぐプロダクト横断チー ムの⼀員として、モバイル領域の中⻑期的な技術的課題の解決や、 PoCの開発を担当しています。
  2. Build Analyzer Android Studio に内包されているツール。 ビルド時間に影響しているタスクやプラグインをグラフィカルに確認できる。 Gradle Profile Option --profile

    オプションをつけるだけでGradleの各タスクにどれだけ時間がかかっているか分かる。 Gradle Profiler Gradle ビルドのプロファイリングおよびベンチマーク情報の収集を⾃動化するツール。 ビルドシナリオを定義してベンチマークをとるだけでなく、プロファイラと連携することも可能。 Gradle Build Scan Gradle社が提供しているビルド分析サービス。 Web上でビルドの分析情報が閲覧できて便利だが、外部にビルド情報が送信されてしまうので注意。 Kotlin Build Report ⭐ コンパイルタスク内の各フェーズでの時間、メモリ使⽤量、GC、コンパイルがインクリメンタルにできなかった理由など が分かる。 ビルドパフォーマンスを測定するツール
  3. - Kotlinが関係するタスクについて 詳細な情報を出⼒してくれる - フェーズごとの実⾏時間である Time metrics とメモリ使⽤量など が分かるSize metricsなどを出⼒

    - Kotlin 2.0 からコンパイラフロン トエンドが変わったことでレポー トの内容も変化している Kotlin Build Report
  4. 全体のビルド時間は16秒(約4%)短縮 🎉 - Kotlin 1.9.22 で 369秒 - Kotlin 2.0で

    353秒 コンパイルタスクに絞ると21秒(約20%)短縮🎉 - Kotlin 1.9.22で 101秒 - Kotlin 2.0で 80秒 ただし、効果のあったモジュールとそうではないモジュールがある 🤔 ビルド時間
  5. Kotlin Build Report を確認すると分析フェーズで改善を確認 - Compiler code analysis - Kotlin

    1.9.22 : 2.17 (s) - Kotlin 2.0.0 : 1.02 (s) - Analysis lines per second - Kotlin 1.9.22 : 5638 - Kotlin 2.0.0 : 12026 効果のあったモジュール
  6. 分析フェーズでの改善は確認できなかった - Compiler code analysis - Kotlin 1.9.22 : 3.14

    (s) - Kotlin 2.0.0 : 3.14 (s) - Analysis lines per second - Kotlin 1.9.22 : 4737 - Kotlin 2.0.0 : 4776 効果のなかったモジュール