Transcript
Page 1: Edge Conf Rendering Performance Panel

Rendering Performance

Andre BehrensJonathan KleinPaul LewisAriya HidayatJoshua PeekEli Fidler

Sunday, September 22, 13

Page 2: Edge Conf Rendering Performance Panel

60 FPS

Sunday, September 22, 13

Page 3: Edge Conf Rendering Performance Panel

16.6 ms

Sunday, September 22, 13

Page 4: Edge Conf Rendering Performance Panel

Sunday, September 22, 13

Page 5: Edge Conf Rendering Performance Panel

Jank

Sunday, September 22, 13

Page 6: Edge Conf Rendering Performance Panel

What Causes Jank?

Sunday, September 22, 13

Page 7: Edge Conf Rendering Performance Panel

http://jankfree.org/jank-busters-io-2013/template.html#15

Sunday, September 22, 13

Page 8: Edge Conf Rendering Performance Panel

Why Do We Care?

Sunday, September 22, 13

Page 9: Edge Conf Rendering Performance Panel

Facebook artificially slowed down frame rate on iOS and Android to 30 FPS, and “engagement collapsed”

- Shane O'Sullivan, Edge London 2013

Sunday, September 22, 13

Page 10: Edge Conf Rendering Performance Panel

Etsy tested pre-fetching JS on our search results page, which caused jank as the JS finished downloading. All business

metrics we monitored got much worse.- Me, right now

Sunday, September 22, 13

Page 11: Edge Conf Rendering Performance Panel

How Do We Fix It?

Sunday, September 22, 13

Page 12: Edge Conf Rendering Performance Panel

http://jankfree.org/jank-busters-io-2013/template.html#15

Sunday, September 22, 13

Page 13: Edge Conf Rendering Performance Panel

Sunday, September 22, 13

Page 14: Edge Conf Rendering Performance Panel

But Really...

Sunday, September 22, 13

Page 15: Edge Conf Rendering Performance Panel

But Really...

• requestAnimationFrame, not setTimeout

Sunday, September 22, 13

Page 16: Edge Conf Rendering Performance Panel

But Really...

• requestAnimationFrame, not setTimeout• Consistent frame rate > high frame rate

Sunday, September 22, 13

Page 17: Edge Conf Rendering Performance Panel

But Really...

• requestAnimationFrame, not setTimeout• Consistent frame rate > high frame rate• Paint less (batch)

Sunday, September 22, 13

Page 18: Edge Conf Rendering Performance Panel

But Really...

• requestAnimationFrame, not setTimeout• Consistent frame rate > high frame rate• Paint less (batch)

• Consider translateZ hack

Sunday, September 22, 13

Page 19: Edge Conf Rendering Performance Panel

But Really...

• requestAnimationFrame, not setTimeout• Consistent frame rate > high frame rate• Paint less (batch)

• Consider translateZ hack

• Optimize texture uploads to the GPU

Sunday, September 22, 13

Page 21: Edge Conf Rendering Performance Panel

jankfree.org

Sunday, September 22, 13

Page 22: Edge Conf Rendering Performance Panel

Panel

Sunday, September 22, 13


Recommended