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
Jankety Jank
Search
Ben-Cooper
August 25, 2015
Programming
0
120
Jankety Jank
Whistle stop tour of the rendering pipeline & app lifecycle.
Ben-Cooper
August 25, 2015
Tweet
Share
More Decks by Ben-Cooper
See All by Ben-Cooper
Engineering Yourself
17bc17
0
33
Internal-CSS-Talk.pdf
17bc17
0
92
Mobile Web Performance
17bc17
0
72
So much to learn!
17bc17
0
70
Other Decks in Programming
See All in Programming
サークルポータルを支えるフロントエンドアーキテクチャの選定
toranoana
1
180
Jakarta EE meets AI
ivargrimstad
1
830
◯◯エンジニアになった理由
gessy0129
PRO
0
100
あなたのアプリ、ログはでてますか?あるいはログをだしてますか? (Funabashi.dev用 軽量版)
uzulla
2
140
Modernisation Progressive d’Applications PHP
hhamon
0
150
いまから追い上げる、Jetpack Compose トレーニング
nyafunta9858
0
910
CSC509 Lecture 01
javiergs
PRO
0
170
GitHub Actions で始める Salesforce CI
sms_tech
0
130
Our Websites Need a Lifestyle Change, Not a Diet
ryantownsend
0
150
Crafting Cross-Platform Adventures: Building a Game Engine with Kotlin Multiplatform
dwursteisen
0
310
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
850
Scala NativeでAtCoderに 入門してみた
tsatow
0
320
Featured
See All Featured
It's Worth the Effort
3n
182
27k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.3k
The Mythical Team-Month
searls
218
43k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
327
21k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.4k
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
Teambox: Starting and Learning
jrom
131
8.7k
Building Your Own Lightsaber
phodgson
101
6k
For a Future-Friendly Web
brad_frost
174
9.3k
Large-scale JavaScript Application Architecture
addyosmani
508
110k
A Philosophy of Restraint
colly
202
16k
Done Done
chrislema
180
16k
Transcript
Jankety Jank
0
Jank?
Aalreet! means hello
? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
None
100ms to 10s
Frame Budget 1000 / 60 = 16.6ish
The Rendering Pipeline Warning - browser internals are around the
bend.
Renderer Process GPU Process
Renderer Process GPU Process Compositor Compositor Worker Thread/s Main Thread
GPU Thread
None
Parsing Converting code to various tree structures
Tokeniser Parse Tree DOM Script Exe
“Scripts at the bottom”
html head meta link body p hello world DOM +
CSSOM body font-size: 16px p display: none = Render Tree body
Layout Calculate position and size of nodes in tree.
None
Batched & Immediate Browser batches changes. Certain things force an
immediate layout.
Tread Carefully Forced sync layout. Layout thrashing. http://bit.ly/1TbWsmx Batch operations.
FastDOM
Paint
Two Step Process
Draw Calls
Rasterization
Compositing
Update Layer Tree Image Decode Major GC Evaluate Script Minor
GC Timer Fired
Interval
Continous.
R.A.I.L
Example
Load - 1s
Idle - 50ms chunks
Animation - 16.6ms 8ms
You the compositor
Reduce Paint Areas will-change: transform, translateZ(0)
F.L.I.P bit.ly/1TJ4VAv
Response 100ms
e.preventDefault()
All weighted equally
Go Explore
Go Educate
Context is key
Thanks