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
Optimizing & Profiling UI Performance
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Brenda Cook
July 29, 2016
Programming
13k
6
Share
Optimizing & Profiling UI Performance
Presented at 360|AnDev 2016
Brenda Cook
July 29, 2016
More Decks by Brenda Cook
See All by Brenda Cook
Fragments: Why? How? and What For?
kenodoggy
3
3.7k
Other Decks in Programming
See All in Programming
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
640
GoogleCloudとterraform完全に理解した
terisuke
1
150
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
750
YJITとZJITにはイカなる違いがあるのか?
nakiym
0
240
Liberating Ruby's Parser from Lexer Hacks
ydah
2
2k
実践CRDT
tamadeveloper
0
590
AIを導入する前にやるべきこと
negima
2
140
Offline should be the norm: building local-first apps with CRDTs & Kotlin Multiplatform
renaudmathieu
0
220
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
3
580
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
230
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
4
850
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
180
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
230
Building AI with AI
inesmontani
PRO
1
910
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
320
Joys of Absence: A Defence of Solitary Play
codingconduct
1
350
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
150
Building an army of robots
kneath
306
46k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
540
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
440
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Raft: Consensus for Rubyists
vanstee
141
7.4k
Six Lessons from altMBA
skipperchong
29
4.2k
Transcript
Optimizing & Profiling UI Performance
What does it mean to have performant UI?
Jank
Frame Rate (FPS)
Refresh Rate (Hz)
1 second (1000ms) / 60 frames = 16.67ms per frame
FPS is capped by device display (refresh rate Hz) due to VSync
VSync
3 Double Buffering 0 1 2 1 2 CPU GPU
Display 1 1 Front Buffer CPU GPU Back Buffer 2 3 3 VSync VSync VSync VSync Frame Drop
4 3 Triple Buffering 0 1 2 3 1 2
CPU GPU Display 1 1 Front Buffer CPU GPU Back Buffer CPU GPU 3rd Buffer 2 3 4 VSync VSync VSync VSync Frame Drop
No VSync
Optimize
Flatten View Hierarchy
Deeply Nested View Hierarchy
Deeply Nested View Hierarchy
Shallow View Hierarchy
Deeply Nested Design View Optimized
Hierarchy Viewer
3 2 1
[show deeply nested hierarchy]
[show shallow hierarchy]
[show image of obtaining measure, layout and draw time]
None
None
Know your Views
GPU Overdraw
None
None
None
clipRect & quickReject
Performance Profiling
Profile GPU Rendering
None
Marshmallow
None
Android Studio Monitors
None
android { buildTypes { debug { debuggable true }
release { ... } } }
None
None
Systrace
$ cd android-sdk/platform-tools/systrace $ python systrace.py --time=10 -o mytrace.html sched
gfx view wm
None
None
None
None
None
None
None
None
Image Libraries to the Rescue! Picasso
Thank you Twitter @kenodoggy g+ +BrendaCook_kenodoggy