无论是从Velocity 2012还是在web技术沙龙,亦或前端同学的学习月报里,相信大家对PageSpeed的概念和原理都有了一定的了解。那么下一步我们要做的是,将PageSeed分析方法应用到我们日常的发布中去。包括两部分:
  1、发布系统上,提测之后,性能报告自动输出(主要针对内网环境,未发布)
  2、日常性能回归检查(主要针对外网环境,已发布)
  这里henry不卖关子了,直接给出结论:通过WebPageTest可以满足我们需求。
  下面是得到这个结论的尝试和WebPageTest的实践。
  1、什么 PageSpeed Insignts?
  PageSpeed目的是让开发者可以发现网站的性能问题并针对其规则进行优化。故其在google的”Make the web faster”项目下,并分为”分析”和”优化”两部分。分析部分则名为 PageSpeed Insights。PageSpeed Insights包括
  a、PageSpeed Insights在线工具,即可以通过在线提交URL的方式得到PageSpeed结果,问题是依赖google服务,且无法测试内网逻辑。
  b、PageSpeed Insights API,即通过注册google开发者,调用google的PageSpeed Insights API来实现站点结果的输出。这个API Server是在墙外的,对国内用户非常不靠谱。且同样无法解决测试内网应用的问题。
  c、PageSpeed浏览器插件(browser extensions)支持chrome和firefox,这个插件是开源的(开源地址:http://code.google.com/p/page-speed/)。这个是不依赖于外界服务,仅依赖于浏览器的,可以使用本地hosts甚至fiddler。所以PageSpeed浏览器插件是我们可以选择的一个方案,但逻辑较复杂。其成本主要是要开发基于客户端的C++逻辑。这里因为环境原因及tommy排期原因暂未尝试,有兴趣的同学可以试一下并知会henry。
  2、什么是HTTP Archive?
  上上次前端例会的时候给大家分享了这个站点(http://httparchive.org) ,其强大的功能给我们web性能监控带来了新的启示。以下是对QQ.com做的一次性能检查:
  亮点一、时段截图
 

  亮点二、瀑布流

  亮点三、统计分析

  亮点四、pagespeed建议

  我们要做的性能检测自动化工具好应该具备以上四种特征。
  httparchive也是Steve souders一手创建的站点,目前是开源状态,大家可以在其官网上下载到httparchive的完整代码和数据(http://httparchive.org/downloads.php)。
  但问题来了,我们是否可以使用httparchive来帮我们做一些事情呢,实现内网私有测试呢?
  答案是No。因为Steve souders同学在httparchive项目里表示,httparchive的使命是用来记录互联网上站点的性能情况和趋势。你可以提供公共的个人站点URL,httparchive来帮你做检测但httparchive不提供私有方式的性能检测。那么我们没有办法了么?也不是。Steve Souders同学给我们留下了一个很重要的线索” It’s built on the shoulders of Pat Meenan’s  WebPagetest system.”HTTP Archive是基于WebPageTest构建的!
  3、什么是WebPageTest?
  WebPageTest(http://www.webpagetest.org/)是google 开源项目”make the web faster “的子项目(“make the web faster包括page speed,spdy,tcpm等等”),它本来是AOL内部使用的工具,后来在2008年基于BSD开源。
  OK,到这里我们很幸运的发现WebPageTest是一个开源项目,我们可以使用其做我们在文章开始提到的两个事情。
  其系统实现类似于google Test Driver,通过开启Server和挂载浏览器Agent来实现的。具体原理如下:(https://sites.google.com/a/webpagetest.org/docs/system-design/overview)

  OK,了解到这里,果断去下载安装尝试,https://sites.google.com/a/webpagetest.org 这里有完整的说明这里不赘述,直接给出结果。