Untangling Browser Threads
summary
Explains how Chromium/Blink runs each tab in a render process with a single main (UI/JS) thread plus dedicated threads like the compositor and image/paint workers. Demonstrates with the Performance panel how a heavy CPU loop on the main thread blocks JS-driven layout/paint while the compositor can still animate, shows image decoding off-main-thread, contrast between Web Workers using structured clone versus transferable ArrayBuffer (which moves memory and removes main-thread ownership), and why garbage collection or very large allocations can still cause jank.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 2:28Processors and threads
- 5:57OS processes and threads
- 15:53Chrome browser architecture
- 17:00Rendering process and threads
- 21:42How rendering works
- 27:08Thread blocking demo
- 33:18Image decoding
- 36:57WebAssembly optimization
- 39:28Web Workers
- 43:31JavaScript garbage collection
- 46:19Summary and advice
- 48:50Q&A
related talks
33mWe are all good with browsers made by others
39mFrom code to pixels in a Blink
44mWe Are All Good with Browsers Made by Others
42mChrome Internals and Rendering Performance
23mMultithreading in Javascript
20mUsing Multithreading in the Browser
42mLet the Main Thread Breathe!
19mLet the Main Thread Breathe!
