1、什么是页面性能指数?
页面性能指数是根据通用国际标准YSlow(V2)制定的规则,通过分析网页上所有元素状况计算得出的代表网页综合性能的综合衡量分值。
YSlow(V2)的分析项包括6大类23小项,详见下表:
类别 | 分析项 |
CONTENT | n HTTP请求头 n DNS查询次数 n URL重定向 n Ajax请求缓存 n DOM元素数量 n HTTP 404错误 |
COOKIE | n Cookie大小 n 使用无Cookie域名 |
CSS | n CSS表达式 n JS和CSS位置 n JS和CSS大小 n JS和CSS重复性 n 使用滤镜 n CSS放置页头 |
IMAGES | n 图片缩放 n 网站图标 |
JS | n JS放置页尾 n JS和CSS位置 n JS和CSS大小 n JS和CSS重复性 |
SERVER | n CDN的使用 n 空链接 n 添加过期头 n Gzip压缩 n 配置ETags n 使用Ajax |
2、页面性能指数是如何计算的?
YSlow(V2)将页面性能评价的分析项定为23项,每项的满分都是100分且有自己的评价规则,当监测到的数据不符合规则时,YSlow(V2)就会根据不符合的严重程度扣分,从而计算出每个分析项的得分。之后,YSlow(V2)再根据每个分析项的重要程度为其分配权重,最终计算出一个综合得分,即页面性能指数。
具体计算方法,如下表所示:
分析项 | 权重 | 分析点 | 配置信息目录 | 分值计算 |
HTTP请求 | 8 | js = 3 css = 4 css images = 3 | max js = 3 max css = 2 max css images = 6 | (N JS - 3) * 3 (N CSS - 2) * 4,(N CSS images - 6) * 3 |
CDN的使用 | 6 | 10 | 模式= CDN主机名RegExp模式 类型= javascript、css、图像、css图像、flash、图标 | N 个不匹配RegExp * 10 (/favicon.ico除外) |
空src或href | 30 | 100 | - | N个空src <img> * 100 N个空src <script> * 100 N 个空href <link rel="stylesheet"> * 100 |
添加过期头 | 10 | 11 | 范围= 172800s (2 days) 类型= js、css、图片、css图片、 flash、图标 | N (不过期或者任意类型过期时间< 2 天) * 11 |
Gzip压缩 | 8 | 11 | 最小文件大小= 500 bytes 类型= doc、iframe、xhr、js、css | N (不可压缩or 任意类型文件大小<500b) * 11 |
CSS放置页头 | 4 | 10 | - | 1 + N CSS链接标签on BODY * 10 |
Js放置页尾 | 4 | 5 | - | N JS on HEAD * 5(忽略注入、延期和异步JS) |
Css表达式 | 3 | 2 | - | N (CSS 链接文件或者style文件内嵌的表达式)* 2 |
JS和CSS位置 | n/a | - | none | |
DNS查询次数 | 3 | 5 | 最大域名数= 4 | N个域名> 4 AND |
JS和CSS大小 | 4 | 10 | 类型= js、css | N (unminified JS or CSS external or inline)) * 10 |
URL重定向 | 4 | 10 | - | N重定向* 10 |
JS和CSS重复性 | 4 | 5 | 类型= js、css | N (重复的JS or CSS) * 5 |
配置ETags | 2 | 11 | 类型= js、css、图片、css图片、 flash、图标 | N 任意类型的错误ETags* 11 |
Ajax请求被缓存 | 4 | 5 | 最小缓存时间= 3600s | N (没被缓存的或者expiring in < 3600s) XHR * 5 |
使用Ajax | 3 | 5 | - | N (没有用到GET的XHRs)XHRs * 5 |
DOM元素数量 | 3 | 10 | 范围= 250 最大dom数= 900 | N DOM元素> 900 AND(N DOM 元素- 900) / 250 * 10 |
HTTP 404错误 | 4 | 5 | 类型= js、css、图片、css图片、flash、图标、xhr | N 404 * 5 |
Cookie大小 | 3 | 10 | 最大cookie大小= 1000 | Cookie大小> 1000 AND 1+ (cookie 大小/ 1000) * 10 |
使用无Cookie域名 | 3 | 5 | 类型= js、css、图片、css图片、flash、图标 | N (任意大小的任何类型的cookie组件) * 5 忽略/favicon.ico |
使用滤镜 | 4 | 5 | half points = 2 | N alpha filters * 5 + M _hack alpha filters * 2 |
不要在HTML里面缩放图片 | 3 | 5 | - | N (图片按比例缩小宽带或高度) * 5 |
网站图标 | 2 | 5 | 大小= 2000b 最小缓存时间= 3600s | 404图标= 5 图标大小>2000b = 5 没有过期图片或者过期时间<3600s = 5 |
3、页面性能指数6大类的得分是如何计算的?
CONTENT得分的计算方法
CONTENT类包括6个分析项,分别是:HTTP请求头、DNS查询次数、URL重定向、Ajax请求被缓存、DOM元素数量、HTTP 404错误。算出每个分析项的得分后,再计算其平均值,即为CONTENT类得分。
COOKIE得分的计算方法
COOKIE类包括2个分析项,分别是:Cookie大小和使用无Cookie域名。算出每个分析项的得分后,再计算其平均值,即为COOKIE类得分。
CSS得分的计算方法
CSS类包括6个分析项,分别是:CSS放置页头、CSS表达式、JS和CSS位置、JS和CSS大小、JS和CSS重复性、使用滤镜。算出每个分析项(使用外部JS和CSS除外)的得分后,再计算其平均值,即为CSS类得分。
IMAGES得分的计算方法
IMAGES类包括2个分析项,分别是:图片缩放和网站图标。算出每个分析项的得分后,再计算其平均值,即为IMAGES类得分。
JS得分的计算方法
JS类包括4个分析项,分别是JS放置页尾、JS和CSS位置、JS和CSS大小、JS和CSS重复性。算出每个分析项(使用外部JS和CSS除外)的得分后,再计算其平均值,即为JS类得分。
SERVER得分的计算方法
SERVER类包括6个分析项,分别是:CDN的使用、空链接、添加过期头、Gzip压缩、配置ETags、Ajax使用。算出每个分析项的得分后,再计算其平均值,即为SERVER类得分。
4、平均页面性能指数是如何计算的?
平均页面性能指数是指,某一个监测点在一时间段内所有性能指数的平均值。
例如:西安电信监测点一天的平均页面性能指数=西安电信监测点一天监控到的页面性能指数之和/西安电信监测点一天监控的次数(无法获取数据的情况不计算在内)。
5、页面响应时间是如何定义的?
页面响应时间是指用户从发送请求开始到页面接收完数据为止的时间。期间共包括6个时间段,分别为:阻塞等待、DNS解析、建立连接、发送请求、等待时间、接收数据。
6、平均页面响应时间是如何计算的?
平均页面响应时间是指某个监测点在一时间段内所有响应时间的平均值。
例如:西安电信监测点一天的平均页面响应时间=西安电信监测点一天监控到的页面响应时间之和/西安电信监测点今天监控的次数(无法获取数据的情况不计算在内)
7、网站页面图片加载出错能否监控到?
可以的,您可以在网页性能管理中创建监控项目,不仅仅是图片,页面中任何元素出现加载错误都能监控到。