Subject: General Tech | February 17, 2014 - 08:10 AM | Scott Michaud
Tagged: web browser, Google Chrome, chromium
This stutter was 628 milliseconds, or about 38 consecutive frames at 60 FPS.
Image Credit: Chromium Project Blog
Web browsers are designed under the assumption that a single thread of instructions will weave through every task, one by one, until everything is done. At some point, since the early 1990s, computers have been give multiple cores (and some of those designs can have multiple threads shoved through at once). The problem is now that, since "Task A" was designed to occur before "Task B", doing them separately... can break stuff good.
A simplified browser execution flowchart. Execution follows the arrow.
Image Credit: Mozilla
In case you are wondering, Mozilla started to move compilation to a background thread as of Firefox 21. Firefox 29 will move the entire just-in-time (JIT) compilation process off the main thread. This is currently in their "Aurora" release channel. To the rest of the world: it's an alpha.
This optimization is currently available in Google Chrome Beta (33).