记一次网页性能问题定位
栏目: JavaScript · 发布时间: 6年前
内容简介:因为某个页面实在加载的太慢了,所以就想好好的定位下慢的原因。这里我使用了 Chrome DevTools 的 Performane 面板来进行网页性能分析,它可以记录和分析应用在运行时的所有活动,是发现应用中可觉察性能问题的最佳位置。Command+Shift+N 打开 Chrome 隐身浏览器,隐身浏览器可排除扩展程序对 Performane 分析的干扰。Command+Opiton+I 打开控制台,切换到 Performance 选项卡。
因为某个页面实在加载的太慢了,所以就想好好的定位下慢的原因。
这里我使用了 Chrome DevTools 的 Performane 面板来进行网页性能分析,它可以记录和分析应用在运行时的所有活动,是发现应用中可觉察性能问题的最佳位置。
Command+Shift+N 打开 Chrome 隐身浏览器,隐身浏览器可排除扩展程序对 Performane 分析的干扰。Command+Opiton+I 打开控制台,切换到 Performance 选项卡。
如何记录?
- 按
开始记录,操作完或页面加载完后按暂停停止记录。
- 按
重新载入页面并记录,会在载入完成后自动停止记录。
停止记录后Performance面板会自动载入分析结果,如下所示:
每个区域的作用:
- FPS(frames per second): 每秒帧数。这个是用来分析动画的一个主要性能指标。绿色竖线越高,FPS越高。FPS图表上的红色块表示长时间帧,长时间帧的位置很可能会出现卡顿。能保持在60的FPS的话,那么用户体验就是不错的。下面有个Frame区域,鼠标划上去可以看到FPS的具体数值。
- CPU:CPU资源。此区域图表指示哪些类型的事件消耗CPU资源,不同颜色块表示的含义跟Summary是一样的。
- Network:显示了网络请求的顺序及耗时,每一个彩色条代表一个资源请求,彩条越宽,请求的时间越长。
- Main:展示了主线程运行状况。X轴代表着时间。每个长条代表着一个event。长条越长就代表这个event花费的时间越长。Y轴代表了调用栈(call stack)。在栈里,上面的event调用了下面的event。
- Summary:每种类型事件的执行时间。
FPS:看FPS这里绿条的高度很低,并且出现了红条,Frame这里的帧数显示红条部分几乎为0,可以说相当卡顿了。
CPU:脚本执行的时间占了大头,有10s之长
Network: 所有资源请求都会显示在这里,一开始有两个资源并行请求,点击彩色条,下面会显示详细的资源信息。
比如一开始同时请求的两个灰条,根据资源大小可以在 Network选项卡下找到对应的请求资源
绿条的请求时间就很长,点击后看到这张图片的大小有1M,压缩的空间很大。
Main:这里显示捕捉到的 JavaScript 堆栈信息。
可以直接在页面拖拽选择指定时间段,观察这段时间里的详细数据。
切换到Call Tree选项卡,也能看到详细的执行步骤及执行时间:
把执行时间比较长的部分展开,右侧有对应的代码执行位置,展开到足够细力度后就容易定位到代码的位置。我这里展开后耗时长的部分都是G2里的代码,说明我的G2图表渲染时js执行的时间是整个js里的大头,也是优化的重点。
通过上面的分析,能得到两个优化点:
1、压缩图片资源,减少请求时间
2、优化G2图表渲染代码,减少js执行时间
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Linux性能问题定位总结
- 利用jstack定位典型性能问题实例
- 容器化 RDS:借助火焰图定位Kubernetes性能问题
- 90% 的人会遇到性能问题,如何用 1 行代码快速定位?
- 认识绝对定位,相对定位
- 移动端页面头部固定定位的绝对定位实现
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First JavaScript Programming
Eric T. Freeman、Elisabeth Robson / O'Reilly Media / 2014-4-10 / USD 49.99
This brain-friendly guide teaches you everything from JavaScript language fundamentals to advanced topics, including objects, functions, and the browser’s document object model. You won’t just be read......一起来看看 《Head First JavaScript Programming》 这本书的介绍吧!