【51CTO快译】如今,即使是一般网民也清楚设计网站时要使其运行速度较快该怎么做:减少发送给服务器的请求数量,缩小JPEG尺寸,及获得像Akamai Technologies或Limelight Networks之类内容分发网络供应商的服务。
问题是,据一位资深性能优化工程师所称,这些旨在***化Web服务器的方法都成效甚微。这位工程师叫做Steve Souders,现在Google任性能优化总工程师,之前则在Yahoo任同样一职。
“我们曾把Apache代码拆散打乱来看Yahoo到底是怎么运行的,” Souders说道。做过详细分析之后,Souders 吃惊地发现:加载网页时,只有10%到20%的时间是服务器所用的。
在周二举办于洛杉矶的微软技术大会上,Souders发言说延迟大多是网页浏览器里执行代码的结果。Souders说,在今天的多AJAX网页上,问题代码常常是JavaScript。他说,这不是因为Web网页上JavaScript文件太大,而是由于Web浏览器对JavaScript的处理方式。
“因为要依次执行所有JavaScript文件,***代Web浏览器就决定它们还是执行一个的时候中止其它下载比较好。”于是就使其它代码不能被执行或处理。
这种做法在十年前可能合理,但今天电脑由双核和四核CPU驱动的时代,情况就不同了。而且,延缓所造成的代价会很高。
Souders说,Google发现延时500毫秒网路流量就会减少20%,而Amazon也看到100毫秒的延缓就缩减了1%的销售额。
更好的浏览器,有更好的性能
新版的和即将推出的Web 浏览器可以在执行JavaScript 文件的同时下载这些文件。Souders说,上月发行的Internet Explorer 8有这种性能,将推出的Mozilla公司的Firefox 3.5和Google的Chrome 2.0也可以。51CTO编者注:这四大浏览器在上两个月间都先后发布了重要更新,有关它们的性能已经有相关人士做出了比对;而据国际报道,JavaScript成浏览器战争主战场。
Souders说,不对JavaScript做详细检修,改善就不会很大。
为解决这个问题,Souders ***推荐了他制做的一种叫做Yslow的免费工具,Yslow分析并对Web网页在***速度方面的设计情况划出级别。起初为IE打造的Yslow 2.0是一个与Firebug网页开发工具相结合的Firefox附加组件。它可以在Yahoo开发者网络上下载到。
用户可以用Yslow看到JavaScript开始被加载的状况,并确定是否产生了瓶颈。然后用户就可以分解开JavaScript文件,只在开始加载所需的JavaScript,将剩下的留到***,即文字和图片出现之后。
这种方法帮助了一个Souders不愿透露名称的Google网站首页呈现速度提高了60%。
CSS也会影响网站性能。描述Web页面外观的CSS文件近年变得越来越繁复。
CSS文件成为问题,部分原因在于用户往往会整天停留在某些如Web邮件门户这样的多CSS页面上。Souders说,这些网站会整天不断重新呈现,产生由于每次对CSS文件表述过于详细造成的延迟。
除JavaScript和CSS外,Yslow总共分析到22条准则规范。在级别划分方面Yslow不偏不倚。著名的网站如Apple.com, ESPN.com和Wikipedia被划为C等,NYTimes.com, NBA.com和Computerworld.com都被归为更糟糕的E等。
“看着这个,我觉得它就像是很严格地打成绩的老师。” Souders说。
像Google.com和微软的Live.com这种页面上内容很少的搜索引擎在Yslow上属于寥寥可数的A类。
除Yslow外,还有其它一些工具可用来检测性能瓶颈问题。微软提供有Visual Roundtrip Organizer,而AOL开发了一种叫做PageTest的立即开放源代码工具。所有这些工具都通过一组准则来评判Web网站性能,不过这些准则都无法与Yslow的22条准则规范相比。
原文:JavaScript - the Web site performance killer, Google guru says by Eric Lai
【编辑推荐】