2022-05-13 10:38:16
前端性能工具——Performance
Performance是谷歌浏览器提供的一款强大的前端性能分析工具,它能够帮助开发者深入了解页面加载和渲染过程中的性能瓶颈,从而进行优化。以下是关于Performance的详细介绍和使用指南。
一、浏览器渲染过程
浏览器渲染页面的整个过程是一个从上到下解析文档的过程,主要包括以下几个步骤:
二、渲染过程中可能遇到的问题
CSS阻塞:
style标签中的样式:由HTML解析器进行解析,不阻塞浏览器渲染(可能会产生“闪屏现象”),不阻塞DOM解析。
link引入的外部css样式:由CSS解析器进行解析,阻塞浏览器渲染(避免“闪屏现象”),阻塞其后面的JS语句的执行。
JS阻塞:浏览器不知道后续脚本的内容,如果先去解析了下面的DOM,而随后的JS删除了后面所有的DOM,那么浏览器就做了无用功。因此,浏览器会等待JS脚本执行完毕后再继续向下解析DOM。可以通过给script标签添加defer和async属性,异步引入JS文件来解决这一问题。
三、优化核心理念
四、Performance使用指南
Performance工具主要分为三个主要部分:概览面板、性能指标面板和详情面板。
概览面板:
FPS:帧陵谈速率,如果FPS图标上出现了红色块,表示红色块附近渲染出一帧所需时间过久,可能导致页面卡顿。
CPU:CPU使用率,如果CPU图形占用面积太大,表示CPU使用率越高,可能因为某个JavaScript占用太多的主线亩烂程时间。
网络请求流量:显示页面加载过程中的网络请求情况。
V8内存使用量:显示JavaScript引擎(V8)的内存使用情况。
性能指标面板:
火焰图:记录了渲染主线程、合成线程和GPU进程主线程的任务执行过程。通过火焰图,可以轻松地定位到页面的性能问题。
任务:每个灰色横条对应了一个任务,灰色长条的长度对应了任务的执行时长。点击任务可以查看任务的详细执行过程和源代码位置。
long task:长时间执行的任务,会导致页面卡顿。性能分析的主要目的迅汪漏是找到long task并消除它。
详情面板:
Summary:表示各指标时间占用统计报表。
Bottom-Up:表示事件时长排序列表(倒序)。
Call tree:表示事件调用顺序列表。
Event Log:表示事件发生的顺序列表。
五、总结
通过Performance工具,我们可以定位到页面的性能瓶颈,并采取相应的优化措施。优化的目标包括减少long task的耗时、拆分长时间执行的任务、利用web worker进行耗时计算等。前端的性能优化是一条很长的路,需要不断学习和实践,以提升用户体验和页面渲染效率。








