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

PayPayフリマの速度改善

 PayPayフリマの速度改善

#wwdctokyo

himaratsu

June 08, 2021
Tweet

More Decks by himaratsu

Other Decks in Technology

Transcript

  1. ©2021 Yahoo Japan Corporation All rights reserved. Update 起動体験 PayPayフリマの速度改善

    ヤフー株式会社 CTO室アプリ統括部iOSアプリWG 平松亮介
  2. ©2021 Yahoo Japan Corporation All rights reserved. iOSエンジニア 前期まで︓PayPayフリマ iOS

    今期から︓CTO室 / Core ML Twitter: @himara2 ⾃⼰紹介 2 平松 亮介
  3. ©2021 Yahoo Japan Corporation All rights reserved. • ヤフーの各サービスで起動速度の改善に取り組んでいる •

    PayPayフリマで実施した取り組みを紹介 • 起動速度のメンテナンスにCIを利⽤ 速度改善の取り組み 4
  4. ©2021 Yahoo Japan Corporation All rights reserved. PayPayフリマのホーム画⾯ 9 ݕࡧ૭

    ԣεΫϩʔϧλϒ Ωϟϯϖʔϯόφʔ ϋογϡλάϦϯά ϑΥϩʔͯ͠Δλάͷ৽ண঎඼
  5. ©2021 Yahoo Japan Corporation All rights reserved. PayPayフリマのホーム画⾯ 10 ݕࡧ૭

    ԣεΫϩʔϧλϒ Ωϟϯϖʔϯόφʔ ϋογϡλάϦϯά ϑΥϩʔͯ͠Δλάͷ৽ண঎඼ ͓͢͢Ί঎඼
  6. ©2021 Yahoo Japan Corporation All rights reserved. 起動速度の計測(Watchful) 13 起動⾃体は

    そこそこ速い コンテンツ表⽰に時間がかかっている
  7. ©2021 Yahoo Japan Corporation All rights reserved. • リリースから1年半で様々な機能が追加されてきた •

    ボトルネックはどこか︖まずはグラフにしてみる 複雑化するホーム画⾯ 15
  8. ©2021 Yahoo Japan Corporation All rights reserved. • ハッシュタグリング •

    おすすめ商品 • ブランドランキング ※ログがおかしくならないように注意 キャッシュするもの 30
  9. ©2021 Yahoo Japan Corporation All rights reserved. • iOS 12+で使えるパフォーマンス測定のAPI

    • Instruments や UI Testing で測定 • 今回の計測︓「最初の画像が表⽰されるまで」 計測︓OS Signpost 32
  10. ©2021 Yahoo Japan Corporation All rights reserved. 結果︓コンテンツキャッシュで⼤幅に改善 38 Wi-Fi

    3G 2.13 5.45 Before After Improve 0.91 0.92 -1.22 -4.53 (単位︓秒 / iPhone 12 Pro 実機 / ⾃宅) • 「最初の画像が表⽰されるまで」の時間
  11. ©2021 Yahoo Japan Corporation All rights reserved. • Dynamic frameworks

    → Static frameworks • Podfileを⼀⾏変更 Static frameworksの利⽤ 41
  12. ©2021 Yahoo Japan Corporation All rights reserved. Static frameworksの利⽤で改善 45

    Dynamic Static 1.2 Improve -0.2 1.0 (単位︓秒 / iPhone 12 Pro 実機 / ⾃宅) Dynamic, Static それぞれ3回の平均値
  13. ©2021 Yahoo Japan Corporation All rights reserved. 1. APIリクエストの⾒直し 2.

    コンテンツキャッシュ 3. Sta*c frameworksの利⽤ ここまで ある程度の速度改善ができた 47
  14. ©2021 Yahoo Japan Corporation All rights reserved. 1. APIリクエストの⾒直し 2.

    コンテンツキャッシュ 3. Static frameworksの利⽤ ここまで ある程度の速度改善ができた 48 起動速度が遅くなった時に気づける仕組みが欲しい
  15. ©2021 Yahoo Japan Corporation All rights reserved. 1. 起動速度をUIテストで計測 2.

    そのUIテストをCIで定期的に実⾏ 3. 速度の低下を検知したらSlackに投稿 速度の定期的な計測 49
  16. ©2021 Yahoo Japan Corporation All rights reserved. ワークフロー 50 コミット

    GitHub 定期実⾏ CI上でUIテストで計測 遅くなったら Slackへの通知
  17. ©2021 Yahoo Japan Corporation All rights reserved. • 計測と改善を繰り返し、起動速度を改善 •

    起動速度が低下した時に検知する仕組みづくり • UITesting、Metrics周りのアップデートも楽しみですね︕ おわりに 54