`
boendev
  • 浏览: 243108 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Google PageSpeed 和 Yahoo Yslow前端性能检测

阅读更多

 

1、page speed:http://code.google.com/intl/zh-CN/speed/page-speed/download.html

  http://code.google.com/speed/page-speed/index.html

 

2:yslow: https://addons.mozilla.org/en-US/firefox/addon/5369/

 

关于项目开发者

项目的开发者基本上是Google的工程师,这里需要提到的一个人:Steve Souders 。他曾经效力于Yahoo,是YSlow 项目的开发者之一,而且还是Firebug Work Group  成员之一。他一直以来致力于高性能Web 应用领域。更加有趣的是,在Stanford CS系就开了这么一门课:High Performance Web Sites (CS193H)  。另外,他还写了两本书,都在O’reilly出版,分别是High Performance Web Sites 与 Even Faster Web Sites。

Page Speed是什么

Page Speed是Firefox 的扩展,准确地说是Firebug的扩展。Firebug的强大功能我已经介绍过了 ,Page Speed就是对其进行了进一步扩展,集成的功能包括:

 

页面性能综合分析,可以针对页面提供综合报告和建议内置以及 图片优化,包括JS Minify改进的资源请求显示,对于Firebug Net模块的改进显示页面请求活动视图,以直观的图标方式显示各请求的加载时间顺序以及每个请求各部分的时间消耗,开发人员可以根据这些数据找到性能的瓶 颈JS性能优化,可以分析出未被调用的以及可以延迟调用的函数安装

首先,需要安装Firebug,然后在这里 进行安装。基本要求如下:

Mozilla Firefox 3.0.4及以上Firebug 1.3.3及以上使用

安装好以后,打开Firebug,可以看到新增的两个标签页:Page Speed与Page Speed Activity,如下图所示:

 

其中,Page Speed标签页包括两个功能:Analyze Performance与Show Resources,其中Analyze Performance是Page Speed的核心功能。点击以后Page Speed开始工作,几秒钟以后就会得出一份详细的性能分析报告:

 

其中各项按照重要性进行排序,展开每一部分,可以得到详细的报告。其中,红色图标表示未进行优化,黄色表示可以进行进一步优化,绿色表示已经进行优化。

其余部分的功能可以在Google Code的官方主页上 找到,这里就不赘述了,只重点介绍Analyze Performance这一功能。

性能优化技巧

其实上图的每一项都是Page Speed提供的优化标准,Page Speed就是按照这一条条标准进行分析的。需要拿出来讲的包括:

使用gzip压缩

这里放在第一,是性能优化效果最显著的一步。所谓gzip压缩是一种开发的压缩算法,目前的主流浏览器(Firefox , Safari, Chrome, IE4及以上)与主流服务器 (Apache, Lighttpd, Nginx)均对其有很好的支持。gzip压缩是通过HTTP 1.1协议中的Content-Encoding : gzip来进行标记说明,其可以明显减少文本文件的大小,从而节省带宽和加载时间。我做过的一个实验,发现启用gzip后,jquery 1.2.6 minify版本的大小从54.4k减少到16k,减少了70%。gzip适用的情况包括:

HTML\CSS\文件,gzip算法对于文本文件的 效率比较高,而jpg/gif/png/pdf等二进制文件本身已经进 行了一次压缩,再使用gzip的成效已经不明显了。而且gzip压缩需要消耗服务器的资源,而解压缩需要消耗浏览器的资源,对于比较大的二进制文件具有非 常高的性能消耗;尽量使用一种大小写方式,要么全部大写,要么全部小写。学过数据结构和算法的同学一定知道压缩其本身就是对冗余信息熵进行压缩,如何数据 原素的类型种类太多,其信息冗余度会降低,从而压缩率降低;过小的文件(通常小于150个字节)不宜进行gzip压缩,因为gzip会在文件头加入相关信 息,对于小文件反而会增加文件的长度;

关于各服务器如何启用gzip,可以参加相关文档说明。

如何检查gzip是否启用?使用Firebug,在Net模块中进行检查HTTP Header是否有Content-Encoding gzip标记,参见下图:

 

最小化JS和图片

对于文件本身具有非常大的优化空间。所谓压缩,就是通过一些工具将函数、变量名进行优化(其实就是尽可能 缩短变量名长度),消除多余字符(比如空格、换行符、注释等),最终得到的代码可以在分析和执行上得到性能提升。压缩后得到的代码对于机器而言是可读的, 对于人来说就不行了,因为文件内容已经面目全非。所以压缩一般用于生产期的代码,不能使用于开发期。

同样的道理,图片内容中也有一定的冗余信息,比如文件头部的一些内容描述(这些内容在jpg)图片上尤其如此。通过一定的工具(比如GIMP)可以去除这些信息,从而节省一定的空间。

幸运的是,Page Speed已经内置了这些功能,我们不需要找第三方的工具。如下图所示,可以看到对JS文件进行最小化可以得到的预期效果:

 

比如jquery.form.js,最小化后减少11.9kb,减少54.8%的空间。点击minified version,在新窗口中可以看到Page Speed为你优化好的版本,直接更新到服务器就可以了。

关于图片优化,操作方法同上。

启用浏览器缓存

这是经常使用的方法。当请求的资源在浏览器本地得到缓存后,第二次请求这些内容就可以从直接缓存中取出,减少了连线的HTTP请求。

HTTP 1.1提供的缓存方法主要有两种:

Expires and Cache-Control: max-age. 即内容在缓存中的生命有效期。第一次请求后,在生命有效期之内的后期请求直接从本地缓存中取,不过问服务器;Last-Modified and ETag. 其中Last-Modified标记文件最后一次修改的时间,浏览器第二次请求是在头部加入上次请求缓存下来的Last-Modified时间,如何两次 请求期间服务器的内容没有进行修改,服务器直接返回304 Not Modified,浏览器接到以后直接使用本地缓存。否则,服务器会返回200以及更新后的版本。ETag是服务器对于文件生成的Hash散列,其生成算 法与最后一次修改的时间相关。浏览器第二次请求发送上次的ETag信息,服务器通过简单的比对就知道是否应该返回304还是200。

关于各缓存头部的设置可以参考各服务器的相关文档。

延迟加载

通常浏览器在解析HTML时遇到JS文件会先下载,解析执行后才会下载后面的内容,期间自然会造成一定的延时。为了提高性能,尽可能将JS文件的位 置后移,如果可能,还可以通过部分代码进行异步加载。另外,对于JS和CSS在必须放置在一起情况,需要报JS放置在CSS之后,这样CSS与JS文件可 以同步下载。

文件拼接

这里主要包括JS/CSS等文本文件和图片。对于文本文件,尽可能将同一类型放置到一个文件中,减少HTTP请求。对于CSS背景图片,可以使用 Sprit技术将图片拼接到一起,然后使用background-position属性选择对应的图片。Google首页上的这个图片就是一个很好的例 子:

 

其它

更多优化规则,可以参考Page Speed的说明 以及Steve Souders 个人主页上的相关信息。

结论

虽然现在网络速度越来越快,Web 前端优化仍然非常重要;永远不要假设用户的网络速度和你一样快,毕竟由于ISP的各方面原因,各地的速度大不相同。良好的策略可以在有限的带宽资源下达到最大的性能发挥。

这个世界需要丰富的Web 应用,更加需要高效的Web 应用。

分享到:
评论

相关推荐

    前端工程师-高级WEB网站前端开发测试指南.pdf

    常见的WEB性能测试工具包括Firebug、HttpWatch、DynaTrace's Ajax Edition、Speed Tracer、Page Speed、YSlow等。 1. Firebug Firebug是Firefox中最为经典的开发工具,可以监控请求头、响应头、显示资源加载瀑布图...

    大型网站性能优化实战从前端网络CDN到后端大促的全链路性能优化 带书签完整版

    - **3.1.2 使用PageSpeed进行性能分析**:PageSpeed Insights是由Google提供的在线工具,用于分析网页的性能,并提供优化建议。 - **3.1.3 使用WebPageTest进行性能分析**:WebPageTest是一个开源的网站性能测试工具...

    前端工程师-高级WEB网站前端开发测试指南.docx

    - **YSlow**:与PageSpeed相似,同样是基于Firefox/Firebug的插件,由Yahoo开发。它可以对各种影响网站性能的因素进行评分,是开发者常用的一款工具。 - **WebPageTest**:一个在线性能测试网站,只需输入URL即可...

    Web前端优化

    关于Web前端优化,网上已经有太多的文章,平时主要用的也就是Firefox的两个插件,Yahoo的YSlow和Google的Page Speed(如果您有其它比较好用的,分享一下哦),它们会对你的网页进行检测,哪些做的比较好,哪些还有待...

    前端优化与自动化.pdf

    1. **分析工具**:如YAHOO的YSlow、Google的PageSpeed Insights和Speed Tracer等工具可以提供详细的性能分析报告,并给出优化建议。 2. **监控工具**:例如MySpace的Performance Tracker和AOL的WebPageTest可以帮助...

    页面渲染原理及页面优化

    为了优化页面加载速度,可以使用一些工具,如 Google PageSpeed 和 Yahoo YSlow 等。这些工具可以对页面加载过程进行分析,并提供优化建议。例如,Google PageSpeed 可以对页面加载过程进行分析,并提供以下建议: ...

    YslowFirefox

    其他类似工具如Google的PageSpeed Insights,也有其独特优势。选择哪款工具取决于具体需求,例如,PageSpeed Insights更侧重于移动设备的性能优化。不过,YSlow因其详细的规则解释和易于使用的界面,对于初学者和...

    ModernIE-免费的浏览器测试工具

    长久以来,浏览器兼容性测试一直是困扰前端工程师的工作之一。虽然随着IE9的普及和IE10的发布,这项工作变的越来越轻松,但是旧版本的IE浏览器...PageSpeed和YSlow分别是Google和Yahoo推出的网站性能测试工具。2款产

    经典火狐插件使用,介绍英文seo必备插件使用!

    Page Speed和YSlow(Yahoo开发的类似插件)都是SEO人员进行网站性能优化的重要辅助工具,它们能帮助找出性能瓶颈,提升用户体验,同时也有助于提升在搜索引擎中的排名。 综上所述,SearchStatus和Page Speed这两个...

    firefox 14 和网页开发的插件

    有一个比Google Page Speed更强大网页性能优化工具,那就是YSlow,它是由Yahoo提供的页面性能评测和优化工具,YSlow也有页面性能评分,有趣的 是,YSlow评分接近的两个页面,Page Speed评分却相去甚远,在实际的页面...

    Web开发性能优化参考

    19. **页面优化**:遵循Yahoo的YSlow或Google的PageSpeed Insights等工具提供的最佳实践,优化页面加载性能。 以上是针对Web开发性能优化的一些关键点,实际应用中还需结合具体项目和用户需求进行调整。优化的目标...

    网站优化必备的9个Firefox插件

    1. **Page Speed** (page-speed.xpi):这是由Google开发的一款插件,用于评估网页性能并提供优化建议。它基于YSlow的规则,分析网页加载时间,并根据最佳实践提供改进方案,如压缩图片、合并CSS和JavaScript文件等。...

    GTmetrix Speed Analyzer Plugin-crx插件

    GTmetrix插件基于两个权威的网页性能评估标准——PageSpeed Insights(由Google提供)和YSlow(由Yahoo开发)。这两个工具提供了全面的评分系统和建议,分别从不同的角度分析网页的加载速度: 1. **PageSpeed ...

    GTmetrix:第一个 chrome 扩展

    关于GTmetrix的工作原理,它主要基于两个性能评估标准:PageSpeed(由Google开发)和YSlow(由Yahoo开发)。这两个工具分别提供了关于如何提高网页加载速度的一系列规则。GTmetrix的扩展可能会集成这两个工具的API,...

    每个程序员都应该了解的知识有哪些?(二)

    5. **学习性能优化资源**:参考Yahoo的Exceptional Performance网站,了解前端性能优化的最佳实践,以及使用YSlow和Google Page Speed等工具进行性能评估。 6. **CSS精灵图**:通过CSS精灵图技术合并多个小图片,...

    GTmetrix-extension

    GTmetrix是一款强大的网页性能评估工具,它结合了PageSpeed Insights(由Google开发)和YSlow(由Yahoo开发)的评估规则,提供全面的页面加载速度建议。 在JavaScript编程中,Chrome扩展程序是利用浏览器API和Web...

Global site tag (gtag.js) - Google Analytics