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
Pedal to the Metal - Aftermath
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Esteban Torres
January 19, 2019
Technology
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Pedal to the Metal - Aftermath
Journey SoundCloud had to undergo when improving the iOS launch times.
Esteban Torres
January 19, 2019
More Decks by Esteban Torres
See All by Esteban Torres
Pedal to the Metal
esttorhe
0
110
Interconnect All the Things!
esttorhe
0
150
Facing the VIPER
esttorhe
2
240
MVVM(DC): Taming your architecture
esttorhe
1
200
Hacking SiriKi - Mobilization 2016
esttorhe
1
5.2k
MVVM + RxSwift + DataControllers
esttorhe
1
770
Xcode's 8 Source Editor Extensions
esttorhe
0
180
MVVM + RxSwift + DataControllers
esttorhe
0
600
Using Jekyll & Octopress
esttorhe
1
160
Other Decks in Technology
See All in Technology
美味しいスイスチーズを作ろう🧀🐭
taigamikami
1
260
自律型AIエージェントは何を破壊するのか
kojira
0
110
AIを「創る」と「使う」の循環 — HRテックが実践するリアルなAI組織実装
taketo957
0
1.7k
やさしいA2A入門
minorun365
PRO
7
530
Socrates × Looker 〜セマンティックレイヤーで進化するデータ分析エージェント〜
hanon52_
1
600
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
1.9k
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
2
390
「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革の ロードマップと実行 ─
starfish719
0
8.9k
機械学習を「社会実装」するということ 2026年夏版 / Social Implementation of Machine Learning June 2026 Version
moepy_stats
2
180
AIにフローを作らせようとして挫折した話
hamatsutaichi
0
230
製造業のクラウド活用最適解〜AI,DXを加速するデータ基盤の作り方〜
hamadakoji
0
410
Rancherの紹介&Update情報(RancherJP Online Meetup #09)
yoshiyuki_kono
0
130
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
The untapped power of vector embeddings
frankvandijk
2
1.7k
Paper Plane (Part 1)
katiecoart
PRO
0
8.7k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
320
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
Accessibility Awareness
sabderemane
1
130
Balancing Empowerment & Direction
lara
6
1.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
The agentic SEO stack - context over prompts
schlessera
0
800
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Transcript
Pedal to the Metal Esteban Torres • Core Clients @
SoundCloud • @esttorhe
Pedal to the Metal - AFTERMATH Esteban Torres • Core
Clients @ SoundCloud • @esttorhe
Esteban Torres • Core Clients @ SoundCloud • @esttorhe
! Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Sequel Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Esteban Torres • Core Clients @ SoundCloud • @esttorhe
⾠ Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Context Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Planning @ SoundCloud Esteban Torres • Core Clients @ SoundCloud
• @esttorhe
the bet Esteban Torres • Core Clients @ SoundCloud •
@esttorhe
Improve iOS launch time Esteban Torres • Core Clients @
SoundCloud • @esttorhe
iOS branch Core Clients Esteban Torres • Core Clients @
SoundCloud • @esttorhe
Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Impossibility Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Check the code 1. Grab start timestamp 2. Grab end
timestamp 3. Diff 4. Multiply by a 1000 5. Send Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Check the code 1. Grab start timestamp 2. Grab end
timestamp 3. Diff 4. Multiply by a 1000 5. Send Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Over 5 seconds Esteban Torres • Core Clients @ SoundCloud
• @esttorhe
7,000,000 milliseconds Esteban Torres • Core Clients @ SoundCloud •
@esttorhe
Esteban Torres • Core Clients @ SoundCloud • @esttorhe
context Esteban Torres • Core Clients @ SoundCloud • @esttorhe
App then Esteban Torres • Core Clients @ SoundCloud •
@esttorhe
Esteban Torres • Core Clients @ SoundCloud • @esttorhe
App now Esteban Torres • Core Clients @ SoundCloud •
@esttorhe
Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Esteban Torres • Core Clients @ SoundCloud • @esttorhe
more context Esteban Torres • Core Clients @ SoundCloud •
@esttorhe
Instruments Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Esteban Torres • Core Clients @ SoundCloud • @esttorhe
1. Startup Operations 2. ViewController 4. Profit?? Esteban Torres •
Core Clients @ SoundCloud • @esttorhe
! Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Main thread Esteban Torres • Core Clients @ SoundCloud •
@esttorhe
! Esteban Torres • Core Clients @ SoundCloud • @esttorhe
! Esteban Torres • Core Clients @ SoundCloud • @esttorhe
How about that ViewController Esteban Torres • Core Clients @
SoundCloud • @esttorhe
even more context Esteban Torres • Core Clients @ SoundCloud
• @esttorhe
Mirroring & you Esteban Torres • Core Clients @ SoundCloud
• @esttorhe
⚡" Esteban Torres • Core Clients @ SoundCloud • @esttorhe
What now !? Esteban Torres • Core Clients @ SoundCloud
• @esttorhe
Total pre-main time: 2.0 seconds (100.0%) dylib loading time: 355.67
milliseconds (17.0%) rebase/binding time: 1.3 seconds (63.5%) ObjC setup time: 186.10 milliseconds (8.9%) initializer time: 218.53 milliseconds (10.4%) slowest intializers : libSystem.dylib : 5.52 milliseconds (0.2%) <Redacted> : 51.01 milliseconds (2.4%) MediaServices : 57.60 milliseconds (2.7%) SoundCloud : 182.43 milliseconds (8.7%) Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Enter Static Frameworks Esteban Torres • Core Clients @ SoundCloud
• @esttorhe
Total pre-main time: 563.45 milliseconds (100.0%) dylib loading time: 111.39
milliseconds (19.7%) rebase/binding time: 151.48 milliseconds (26.8%) ObjC setup time: 148.33 milliseconds (26.3%) initializer time: 152.08 milliseconds (26.9%) slowest intializers : libSystem.dylib : 3.37 milliseconds (0.5%) <Redacted> : 46.06 milliseconds (8.1%) MediaServices : 25.92 milliseconds (4.6%) SoundCloud : 148.34 milliseconds (26.3%) Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Resources & Static Frameworks Esteban Torres • Core Clients @
SoundCloud • @esttorhe
Including Frameworks Esteban Torres • Core Clients @ SoundCloud •
@esttorhe
Takeaways Esteban Torres • Core Clients @ SoundCloud • @esttorhe
1. Parallelize* * Also with care Esteban Torres • Core
Clients @ SoundCloud • @esttorhe
2. Instruments is your friend Esteban Torres • Core Clients
@ SoundCloud • @esttorhe
3. Static Frameworks* * Also with care Esteban Torres •
Core Clients @ SoundCloud • @esttorhe
4. Assume no ill-intention Esteban Torres • Core Clients @
SoundCloud • @esttorhe
Links · Automatic's blogpost about static frameworks 1 · Keith
Smiley's LD python script 2 · CocoaPods 1.5.0 release notes 3 3 http://blog.cocoapods.org/CocoaPods-1.5.0/ 2 https://github.com/keith/swi"-staticlibs 1 https://blog.automatic.com/how-we-cut-our-ios-apps-launch-time-in-half-with-this-one-cool-trick-7aca2011e2ea Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Xiè xiè · Github / Twitter @esttorhe - Mastodon @
[email protected]
Esteban Torres • Core Clients @ SoundCloud • @esttorhe
We are hiring Esteban Torres • Core Clients @ SoundCloud
• @esttorhe
Esteban Torres • Core Clients @ SoundCloud • @esttorhe
Xiè xiè Esteban Torres • Core Clients @ SoundCloud •
@esttorhe