11 — 性能与工程优化
Chrome 性能优化可以从四条主线回答:渲染、线程、进程、网络。
渲染与合成
- 使用线程化合成,让滚动和部分动画不必每帧依赖 Renderer 主线程。
- 使用 Pending / Active 树,让新内容准备时旧帧还能继续显示。
- 使用 tile 光栅化,只更新可见或脏的区域。
- 尽量让
transform、opacity等动画走合成路径。
线程与任务
- 不阻塞 UI 线程,否则浏览器界面卡。
- 不阻塞 IO 线程,否则 IPC、Mojo、网络通信变慢。
- Renderer 主线程避免长任务,否则 JS、布局、输入响应都会受影响。
- 重计算和阻塞 IO 放到 ThreadPool。
进程与内存
Site Isolation 提升安全,但会增加进程数和内存占用。Chrome 需要在隔离强度、进程复用和内存之间做权衡。
桌面和移动端策略可能不同,移动端更容易受内存限制影响。
网络与 IPC
Network Service 和 Mojo 让架构更清晰,但跨进程通信不是免费的。关键路径上要减少不必要的线程跳转和进程跳转。
如何验证优化
中可以回答:
- 用 Performance / Tracing / Perfetto 看主线程、合成线程、GPU、网络耗时。
- 用 Lighthouse 或 DevTools 看页面性能指标。
- 用 Web Tests、browser tests 防止行为回归。
总结
Chrome 的性能优化不是单点技巧,而是系统性权衡:渲染管线减少主线程依赖,任务调度避免阻塞关键线程,进程模型在安全和内存之间取舍,网络与 IPC 控制通信成本。