Chrome 渲染进程的多线程
renderer process's core job is to turn HTML, CSS, and JavaScript into a web page that the user can interact with
在渲染器进程中,主线程处理您发送给用户的大部分代码。 如果您使用 Web worker 或 service worker,有时JavaScript的一部分将由 worker 线程处理。 合成线程和光栅化线程也在渲染器进程内运行,以高效,流畅地呈现页面。
主线程可以在解析构建DOM时逐个请求它们,但为了加快速度,"预加载扫描器"同时运行;执行脚本;计算样式;布局;绘制;
分层,分片合成和光栅;发送合成帧数据给浏览器进程使用 GPU 渲染
浏览器进程得到输入事件,通知渲染器进程。
不受事件处理程序的影响时合成器线程将不等待主线程的情况下进行合成新帧。所以事件委派影响性能。
Chrome 会合并连续事件(例如滚轮,鼠标滚轮,鼠标移动,指针移动,触摸移动)和延迟调度,直到下一个 requestAnimationFrame 之前;可以使用 getCoalescedEvents 获取帧内事件。