前端性能优化之Performance神器

简介:  对Chrome控制台有一定的了解的朋友都在知道,Network面板会包括很多网络请求方面的东西,包括Http相关的Request信息,Response信息,以及Cookies等等,都是前端开发需要密切关注的问题。

这些信息都是属于功能性的,那么当我们的功能需求满足后,势必需要对于性能进行优化,有什么工具可以帮助我们进行分析呢?答案就是Chrome控制台的Performance面板。


  需要注意的一点是,Performance面板下的功能,是对于细节中的细节进行的优化。其中包含:

1.FPS,CPU和NET的使用情况?
2.页面的前1毫秒和后1毫秒网络任务是怎样?
3.Javascript代码的执行消耗时间,显卡负载情况等?
4.浏览器对页面的绘制精确到毫秒级的情况?


image.png

  这幅图中,1,2包括了FPS,CPU,NET以及网页渲染快照以及流式Network图,直观地浅显地回答了1和2两个问题,3回答了Javascript代码的执行消耗时间,显卡负载情况等,4则回答了浏览器对页面的绘制精确到毫秒级的情况。


  上一篇博客中也提到了,第4步,也就是我们最关心的一步,是浏览器对页面的绘制精确到毫秒级的情况,准确的为我们剖析了浏览器加载渲染页面的全过程。

image.png


  因此下文我们主要对4进行剖析,它包括4个分析面板,肯定有各自的意思在其中。


image.png

  先来分析Summary面板,和其字面意思一样,这是总结面板。从宏观层面概括了浏览器加载的总时间,包括:


颜色 英文 中文
蓝色 Loading 记载
黄色 Scripting 脚本
紫色 Rendering 渲染
绿色 Painting 绘制
深灰 Other 其他
浅灰 其他 未熄火(空闲)

 

 再来分析Bottom-Up面板,直接翻译成上下很愚蠢,索性翻译成刨根问底得了,这样更合适。


  Self Time和Total Time以及Activity,其中的Self Time代表函数本身执行消耗时间,Total Time则是函数本身消耗再加上在调用它的函数中消耗的总时间,Activity不用解释,就是浏览器活动的意思。


image.png

  值得注意的是,这里的Group面板非常有用。我们可以很清晰明了得分析按照活动,目录,域,子域,URL和Frame进行分组的前端性能。对于开发非常有帮助。


image.png

  其实Bottom-Up和Call Tree都有各自的意思,前者是The Heavy (Bottom Up) view is available in the Bottom-Up tab,后者是And the Tree (Top Down) view is available in the Call Tree tab。个人理解的话,前者类似事件冒泡,后者类似事件捕获。要知道,Nodejs是事件驱动型,这对于以后学习Nodejs有很大的帮助。

image.png

image.png

  看一下二者的对比图,很明显可以看出,自上而下的Call-Tree更符合我们的人类正常思维,可以更直观地分析浏览器对页面的build精确到毫秒级的情况。

  就以百度首页进行分析。


1. 绘制阶段


综合视窗,绘制

image.png


2. 加载阶段


解析样式表,解析HTML(评估脚本,事件)

image.png


3.脚本阶段


  DOM GC(DOM垃圾回收),评估脚本,事件,Major GC(清理年老区(Tenured space)),Minor GC(每次Minor GC只会清理年轻代),Run Microtasks(运行微服务),Timer Fired(销毁计时器) ,XMR Load(异步加载对象加载)。

image.png


4.渲染阶段

  视窗,升级视图树,重新计算样式。


image.png

  最后说一下Event Log ,顾名思义就是事件日志的意思,可以很方便的选择想查看的某一阶段的日志。


image.png


  其实我的这篇博客没有特别深入的讲解了浏览器渲染机制,只是简单介绍了一下Performance如何使用,大家可以先看下Alon大牛的这篇浏览器前端优化,这篇博客干货非常多。


  大家也都注意到了,Performance工具当中,包含了许多方便Nodejs开发的工具。我斗胆猜想,这可能真的是大前端的味道。前端不再是传统的UI层面或者操作DOM,而是担任了更多的角色。前端热潮中的mvvm三框架,vue,react以及angular,都有很多后端的思想。


  有心的同学可以发现,饿了么大前端团队的文章,大多都是nodejs相关,对于后端了解较少的同学学起来会非常困难。同学在点我达,他们正在筹划改组成大前端团队。我们公司都没有ios和安卓,而是有一个类似大前端的开发支持部。所以说,这呈现出一个趋势,未来优秀的的前端工程师,后端Nodejs必不可少。


  关于Performance,暂时浅尝辄止到这里,我想这对自己,以及每个阅读了这篇博客的前端工程师,将来会有或多或少的帮助。


参考文档:

https://developers.google.com...

https://stackoverflow.com/que...

https://developers.google.com...

http://colobu.com/2015/04/07/...

相关文章
|
11月前
|
前端开发 JavaScript 索引
前端性能优化:虚拟滚动技术原理与实战
前端性能优化:虚拟滚动技术原理与实战
1472 80
|
缓存 前端开发 UED
如何优化前端性能以提高加载速度
前端性能优化对提升网站加载速度至关重要,直接影响用户体验、SEO排名和转化率。本文介绍了优化前端加载速度的关键技巧,包括最小化HTTP请求、使用CDN、优化图片、利用浏览器缓存、压缩文件和实现懒加载。通过这些方法,可以显著减少页面加载时间,提高网站的整体性能和用户满意度。
|
11月前
|
缓存 监控 前端开发
前端性能优化:现代框架的关键策略
前端性能优化:现代框架的关键策略
513 74
|
8月前
|
存储 前端开发 安全
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
341 5
|
11月前
|
缓存 前端开发 JavaScript
前端性能优化:打造流畅的用户体验
前端性能优化:打造流畅的用户体验
|
前端开发 JavaScript 开发者
前端 CSS 优化:提升页面美学与性能
前端CSS优化旨在提升页面美学与性能。通过简化选择器(如避免复杂后代选择器、减少通用选择器使用)、合并样式表、合理组织媒体查询,可减少浏览器计算成本和HTTP请求。利用硬件加速和优化动画帧率,确保动画流畅。定期清理冗余代码并使用缩写属性,进一步精简代码。这些策略不仅加快页面加载和渲染速度,还提升了视觉效果,为用户带来更优质的浏览体验。
|
人工智能 JavaScript 前端开发
Vue 性能革命:揭秘前端优化的终极技巧;Vue优化技巧,解决Vue项目卡顿问题
Vue在处理少量数据和有限dom的情况下技术已经非常成熟了,但现在随着AI时代的到来,海量数据场景会越来越多,Vue优化技巧也是必备技能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
1235 4
|
缓存 监控 前端开发
探索前端性能优化:关键策略与代码实例
本文深入探讨前端性能优化的关键策略,结合实际代码示例,帮助开发者提升网页加载速度和用户体验,涵盖资源压缩、懒加载、缓存机制等技术。
|
搜索推荐 前端开发 定位技术
前端开发人员SEO优化技术方案
不同的搜索引擎提供了服务后台常见功能来优化网站搜索
340 2

热门文章

最新文章