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
Surprise! Your app is slow because the speed of...
Search
Clay Smith
March 21, 2016
Programming
0
83
Surprise! Your app is slow because the speed of light is slow.
Ignite talk at Mobile Delivery Days 2016.
Clay Smith
March 21, 2016
Tweet
Share
More Decks by Clay Smith
See All by Clay Smith
Automated Canary Analysis with New Relic
smithclay
1
250
Instrumenting CI Pipelines
smithclay
1
140
Serverless Performance with Headless Chrome
smithclay
0
490
FaaS Measurement Fundamentals
smithclay
7
1.5k
Serverless Measurement Limits
smithclay
1
230
Searching for the Server in Serverless
smithclay
1
1.9k
High Performance iOS Networking, v1.20
smithclay
5
230
HTTP/2: The Weird Parts
smithclay
1
120
High-Performance iOS Networking
smithclay
6
1.2k
Other Decks in Programming
See All in Programming
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
520
Building, Deploying, and Monitoring Ruby Web Applications with Falcon (Kaigi on Rails 2025)
ioquatix
4
2.5k
なぜあの開発者はDevRelに伴走し続けるのか / Why Does That Developer Keep Running Alongside DevRel?
nrslib
3
420
タスクの特性や不確実性に応じた最適な作業スタイルの選択(ペアプロ・モブプロ・ソロプロ)と実践 / Optimal Work Style Selection: Pair, Mob, or Solo Programming.
honyanya
3
190
Google Opalで使える37のライブラリ
mickey_kubo
3
130
Android16 Migration Stories ~Building a Pattern for Android OS upgrades~
reoandroider
0
130
Webサーバーサイド言語としてのRustについて
kouyuume
1
3.8k
AI Coding Meetup #3 - 導入セッション / ai-coding-meetup-3
izumin5210
0
3.4k
Developer Joy - The New Paradigm
hollycummins
1
330
Range on Rails ―「多重範囲型」という新たな選択肢が、複雑ロジックを劇的にシンプルにしたワケ
rizap_tech
0
6.7k
実践Claude Code:20の失敗から学ぶAIペアプログラミング
takedatakashi
16
6.5k
Claude CodeによるAI駆動開発の実践 〜そこから見えてきたこれからのプログラミング〜
iriikeita
0
320
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Scaling GitHub
holman
463
140k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
Raft: Consensus for Rubyists
vanstee
140
7.2k
A designer walks into a library…
pauljervisheath
209
24k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Six Lessons from altMBA
skipperchong
29
4k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
It's Worth the Effort
3n
187
28k
The Cult of Friendly URLs
andyhume
79
6.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
Transcript
Surprise! Your app is slow because the speed of light.
Clay Smith, New Relic @smithclay Mobile Delivery Days 2016 CC0 wikimedia.org
When you release an app... CC0 pixabay.com
When you get a review like this... "App slow in
the UK. 1 star." -BenedictC CC0 pixabay.com
Who owns mobile app network issues? CC0 pixabay.com Backend/Ops Device/
Mobile Devs "Stuff in the middle we don't control"
Mobile data growth (simplified) Amount of data Now In a
couple years
Global Network Latency in Fiber CC0 pixabay.com Source Destination Great
Circle Distance RT Time in Fiber SFO London 5,375 mi 84 ms SFO Cape Town 10,124 mi 158 ms 1 ms at speed of light = Length of Massachusetts
After one second, your flow of thought is interrupted. CC0
pixabay.com Milliseconds 1 10 100 1000 10000 Not Magic Interrupted Too Late https://www.nngroup.com/articles/response-times-3-important-limits/
App services: more cloud, more complexity CC0 openclipart.org REST API
Auth - IdP #1 Analytics Ad Network Auth - IdP #2
Move it closer? CC0 pixabay.com Datacenter/AZ CDN
CDNs on the Edge CC0 pixabay.com Cache static and dynamic
content + "uncached origin fetch"
#mobileperf Idea CC0 pixabay.com When in doubt, reduce the number
of TCP connections.
TCP: Use it again CC0 pixabay.com Use HTTP keep-alive to
reuse TCP connections.
TCP: Create connections faster CC0 pixabay.com TCP Fast Open can
speed up opening multiple connections.
https://blog.newrelic.com/2016/02/09/http2-best-practices-web-performance/
Weighing HTTP/2 CC0 pixabay.com multiplexing, compression Hard to debug, backend
support?
What dial do we turn (if any)? CC0 pixabay.com
Premature optimization is the source of all evil. -Donald Knuth
in 1974 CC0 pixabay.com Don't touch that dial. (yet)
CC0 pixabay.com Measure often to understand what matters.
CC0 pixabay.com Measure network latency and connect it to U/X
Building connected mobile apps is hard. Monitoring shouldn't be. Thanks!
Clay Smith, New Relic @smithclay Mobile Delivery Days 2016 CC0 wikimedia.org