前端性能分析工具指标解读与分析

目前,前端性能已经是用户体验的重要一部分,那么如何对站点进行性能测试以及如何优化,本文将在下面一一介绍

一.常用性能测试工具

网站性能评测工具有很多,我们选了比较有代表性的:

 Yslow

 PageSpeed

 LightHouse

YSlow

最具代表性的性能测试工具,但已经近四年未有过更新。虽然23条军规部分依然有效,但已经不能真实的反应网站的性能。而且不能提供最新的优化建议。

PageSpeed

和Yslow类似的一个工具,优点是版本比较新,可以提供手机和PC两个层面的优化建议。

LightHouse

LightHouse:是谷歌浏览器自带性能分析工具,最强大。维度全,包含手机和pc,自定义网速而且性能指标兼容最新H5API有更为详细的优化说明。

二.评分与性能的关系

我们先看下京东和淘宝,在PageSpeed下的评分:京东:45,淘宝:66

Yslow下的评分: 京东76分,淘宝69分

可以看到两者的评分都不算太好,但我们能说它性能差吗

实际上看页面呈现耗时:淘宝648毫秒,京东549毫秒。

(一次访问,不代表两个网站的平均响应时间)

我们应该如果去看待该现象?其实LightHouse已经给出了答案

LightHouse中有两个维度:

Performance和BestPractice

一个是性能,一个是优化。

而Yslow和PageSpeed给出的,更多是优化层面的建议。

我们看下两大网站LightHouse的评测,在性能这方面,都是满分。

所以可以很好的解释我们上面的疑问。

三. 性能关键指标解读以及解决方案

指标大体可以分为如下3类:

1,缓存更新类指标

2,请求数据大小指标

3,网络请求优化指标

1,缓存更新类指标

 为文件头指定Expires

  Etag

 作用:让浏览器尽量走缓存,同时当脚本更新时,能加载最新的脚本。

 定位:非性能关键因素

 缺点:在负载均衡下,如果多台机器的Etag不能保持一致,反而会损耗性能指定过期时间后,脚本更新后无法及时反应到客户端会发起多一次的304请求

 方案:

采用url后加?version=XXXXX

对资源文件的命名引入hash值

方案1:对于未变化的资源再次加载会浪费些许流量

方案2:不同版本的维护,变的复杂多变

经过衡量,忽略Expires和Etag,当前我们采用方案1,等组件更新频度周期变长后,考虑采用方案2

2,请求数据大小指标

  资源文件压缩 

   启用GZIP

   Cookie free


 作用:减少请求响应的数据量,以加快传输速度

 定位:性能关键因素

 缺点:无

 方案:

1,资源文件压缩,目前我们采用grunt

       2,IIS和Nginx均启用GZIP

       3,对cookie free要进行一点说明。同域下的静态文件下载会携带cookie,而且没有用处,所以很多网站的静态文件站点和主站是不同域的,从而解决该问题。但我们的cookie目前是记录到.teld.cn的,所以xxx.teld.cn访问resource.teld.cn的时候,均会携  带cookie。在不启用CDN的前提下,为了解决该问题,需要在script和link标签上加入属性crossorigin=“anonymous”

3,网络请求优化指标


减少请求数


如图是PC谷歌,有一个MaxPerGroup为6。 意思就是,http1.x,对于同一个域名,最大连接数为6.

以ajax为例子,一次最多发出6个,第7个要等前面的有空闲。目前我们的资源服务,以及SG是统一域名的,所以开发的时候特别要注意异步请求数,通过合并请求控制到6以内。

启用http2

Window 10与Window Server 2016版本才包含HTTP2

如果后台服务器是Window Server 2016版本,建议启用http2

减少DnsLookop

如图是谷歌浏览器的请求发送流程。

如果一个网站访问其他域名较多,可以对dns

进行预解析,实现如下:

在html的head中加入

<link rel="dns-prefetch"href="//resource.teld.cn">

当后续请求如果有再次访问该域名,将不会再进行

DnsLookop

预加载

这一机制使得资源可以更早的得到加载并可用,

且更不易阻塞页面的初步渲染,进而提升性能

使用方式:

<link rel="preload"href="style.css"as="style">

<linkrel="stylesheet"href="style.css">

提升后台响应速度

当前主流浏览器的性能已经有了极大的提升,所以CSS解析,JS脚本的执行效率,Dom树的构建,已经不再是影响性能的主要因素。

后台的响应速度:

该部分无法一言而定,需要结合实际的业务场景,复杂度,来单一进行优化。右图的TTFB,如果耗时长,就代表后台响应慢,需要优化

四.总结

Yslow和PageSpeed的评分,并不能真正反映网站的性能,但里面的一些观点依然值得学习

性能分析时,优先使用LightHouse

除了上述指标,还有很多其他指标,考虑到不是当前影响性能的主要因素,未一一列举

里面有很多个人观点,不当之处欢迎批评指正,谢谢!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354