Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
App Startup Time: Optimization & Monitoring
Search
d_date
June 18, 2017
Programming
3
3.2k
App Startup Time: Optimization & Monitoring
2017/06/19 potatotips #41
2017/07/15 SWWDC x AKIBA.swift
d_date
June 18, 2017
Tweet
Share
More Decks by d_date
See All by d_date
TCA Practice in 5 min
d_date
2
1.5k
waiwai-swiftpm-part2
d_date
3
510
わいわいSwift PM part 1
d_date
2
410
What's new in Firebase 2021
d_date
2
1.5k
CI/CDをミニマルに構築する
d_date
1
580
Swift Package centered project - Build and Practice
d_date
20
14k
How to write Great Proposal
d_date
4
1.7k
Thinking about Architecture for SwiftUI
d_date
8
2.4k
Integrate your app to modern world in Niigata
d_date
0
680
Other Decks in Programming
See All in Programming
Claude Code派?Gemini CLI派? みんなで比較LT会!_20250716
junholee
1
540
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
5
1.1k
バイブコーディング超えてバイブデプロイ〜CloudflareMCPで実現する、未来のアプリケーションデリバリー〜
azukiazusa1
1
410
Python型ヒント完全ガイド 初心者でも分かる、現代的で実践的な使い方
mickey_kubo
1
240
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
5
8.7k
オンコール⼊⾨〜ページャーが鳴る前に、あなたが備えられること〜 / Before The Pager Rings
yktakaha4
2
1k
AI駆動のマルチエージェントによる業務フロー自動化の設計と実践
h_okkah
0
230
MDN Web Docs に日本語翻訳でコントリビュートしたくなる
ohmori_yusuke
1
130
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
1k
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
24
9.6k
フロントエンドのパフォーマンスチューニング
koukimiura
5
2k
MCPを使ってイベントソーシングのAIコーディングを効率化する / Streamlining Event Sourcing AI Coding with MCP
tomohisa
0
170
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
700
The Pragmatic Product Professional
lauravandoore
35
6.7k
Into the Great Unknown - MozCon
thekraken
40
1.9k
We Have a Design System, Now What?
morganepeng
53
7.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
830
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Transcript
App Startup Time: Optimization & Monitoring Daiki Matsudate,@d_date, iOS Freelancer
Developer SWWDC x AKIBA.swift in Sendai
Daiki Matsudate,@d_date • iOS Freelancer • Supporting Realm as News
Translator • Organizer of CLEM • WWDC17 Attendee
SWWDC
WWDC
WWDC17
WWDC17 • Back to San Jose • Over 3,000 attendee
• Over 200 sessions / labs / events
Sessions • Frameworks • Design • Developer Tools • Distribution
• Featured • Graphics and Games • Media • System Frameworks
Developer Tools Localizing Swift Debugging Xcode9 Github Undefined Behavior Playgrounds
Testing LLVM Interface Builder App Startup Time Testability
Developer Tools Localizing Swift Debugging Xcode9 Github Undefined Behavior Playgrounds
Testing LLVM Interface Builder App Startup Time Testability
Recognition • ը૾ͷࢹೝ … 13ms • ϑΥʔΧεઌͷܾఆ…100 - 140ms •
ૢ࡞͕ྲྀΕʹ͍ͬͯΔ…200 - 1000ms • ڵຯͷର͕ଞʹҠΔ… 1000 - 10000ms • ؔ৺͕ࣦΘΕΔ … 10000ms - 2014 MIT Research
Recognition • ը૾ͷࢹೝ … 13ms • ϑΥʔΧεઌͷܾఆ…100 - 140ms •
ૢ࡞͕ྲྀΕʹ͍ͬͯΔ…200 - 1000ms • ڵຯͷର͕ଞʹҠΔ… 1000 - 10000ms • ؔ৺͕ࣦΘΕΔ … 10000ms - 2014 MIT
App Startup Time • Do less! • Embed fewer dylibs
• Declare classes/methods • Use fewer initializers • Use more Swift • No initializers • Swift size improvements
Monitoring • In Development • Use DYLD_PRINT_STATISTICS • Initializer Calls
• After Release • Firebase Performance Monitoring How to
Initializer Calls • Available on iOS 11 and macOS High
Sierra • Provides precise timing for each static initializer • Available through Instruments
Initializer Calls Demo
Firebase
• Google I/O 2017 Ͱൃද • iOS / Android ྆ରԠ
Firebase Performance
• ΞϓϦىಈ࣌ؒ, HTTP/S network requestͳͲΛ ࣗಈͰܭଌ • ΞϓϦͷύϑΥʔϚϯεͷվળՕॴ͕Θ͔Δ • ΞϓϦʹ߹ΘͤͯܭଌΛΧελϚΠζͰ͖Δ
Firebase Performance
Firebase Performance Install pod ‘Firebase/Monitoring’ Podfile
Firebase Performance Demo
Summary • fewer dylibs, classes/methods, initializer • Use more Swift
• App startup time monitoring • Use DYLD_PRINT_STATISTICS • Initializer Calls - Instruments (iOS 11~) • Firebase Performance Monitoring
Resources App Startup Time:Past, Present, and Future WWDC 2017 Optimizing
App Startup Time WWDC 2016 Firebase Performance Monitoring
SWWDC x AKIBA.swift in Sendai