Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
App Startup Time: Optimization & Monitoring
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
d_date
June 18, 2017
Programming
3.5k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
App Startup Time: Optimization & Monitoring
2017/06/19 potatotips #41
2017/07/15 SWWDC x AKIBA.swift
d_date
June 18, 2017
More Decks by d_date
See All by d_date
TCA Practice in 5 min
d_date
2
2k
waiwai-swiftpm-part2
d_date
3
610
わいわいSwift PM part 1
d_date
2
500
What's new in Firebase 2021
d_date
2
1.6k
CI/CDをミニマルに構築する
d_date
1
640
Swift Package centered project - Build and Practice
d_date
20
17k
How to write Great Proposal
d_date
4
2.4k
Thinking about Architecture for SwiftUI
d_date
8
2.6k
Integrate your app to modern world in Niigata
d_date
0
780
Other Decks in Programming
See All in Programming
R8 の設定見直しでアプリサイズ削減
andpad
0
210
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
170
最近”作らせてる” ローカルAIアプリの話
akit37
0
460
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
180
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
150
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
480
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
430
AmebaブログはKMPから卒業します
kmars0605
0
100
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
APNsからLive Activityを開始する話
yumnumm
0
170
Jetpack Compose Mechanisms
skydoves
3
790
Featured
See All Featured
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.4k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
810
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
The Mindset for Success: Future Career Progression
greggifford
PRO
0
540
How to build a perfect <img>
jonoalderson
1
6.1k
How to make the Groovebox
asonas
2
2.5k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
470
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
630
RailsConf 2023
tenderlove
30
1.6k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
Optimising Largest Contentful Paint
csswizardry
37
4k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
620
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