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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
d_date
June 18, 2017
Programming
3.3k
3
Share
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
1.8k
waiwai-swiftpm-part2
d_date
3
570
わいわいSwift PM part 1
d_date
2
460
What's new in Firebase 2021
d_date
2
1.6k
CI/CDをミニマルに構築する
d_date
1
620
Swift Package centered project - Build and Practice
d_date
20
16k
How to write Great Proposal
d_date
4
2k
Thinking about Architecture for SwiftUI
d_date
8
2.5k
Integrate your app to modern world in Niigata
d_date
0
730
Other Decks in Programming
See All in Programming
NakouPAY説明用
annouim0
0
240
The Less-Told Story of Socket Timeouts
coe401_
3
420
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
24
13k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyKaigi 2026, Hakodate, Japan
marcoroth
0
150
tRPCの概要と少しだけパフォーマンス
misoton665
2
210
AI時代のPhpStorm最新事情 #phpcon_odawara
yusuke
0
190
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
2
440
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
260
Coding as Prompting Since 2025
ragingwind
0
840
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
3k
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
180
ルールルルルルRubyの中身の予備知識 ── RubyKaigiの前に予習しなイカ?
ydah
1
190
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
210
Heart Work Chapter 1 - Part 1
lfama
PRO
6
35k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
170
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
We Have a Design System, Now What?
morganepeng
55
8.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
530
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
340
How to build a perfect <img>
jonoalderson
1
5.4k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
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