作者 Abel Avram 譯者 霍泰穩(wěn) 發(fā)布于 2009年7月5日 上午10時(shí)38分
在幾周前將網(wǎng)頁(yè)加速工具開(kāi)源后,Google又發(fā)布了一個(gè)網(wǎng)站,意在探尋更多的方法,并推動(dòng)全互聯(lián)網(wǎng)的加速進(jìn)程。這次Google分享了研究數(shù)據(jù)、網(wǎng)站加速優(yōu)化指南、有關(guān)性能的錄制視屏、大量性能優(yōu)化工具的介紹,以及一個(gè)討論組,期望所有人都能在此分享如何使網(wǎng)頁(yè)更快的創(chuàng)意。
Google研究部門(mén)針對(duì)網(wǎng)頁(yè)裝載速度如何影響用戶(hù)的搜索結(jié)果做了一個(gè)研究,在數(shù)據(jù)響應(yīng)階段他們引入了幾個(gè)可控的延遲:
在引入這些可控延遲,并對(duì)用戶(hù)監(jiān)視了4-6周之后,他們?cè)谒阉鹘Y(jié)果數(shù)字中發(fā)現(xiàn)了如下問(wèn)題:
雖然0.5%的損失對(duì)一般人并不意味著什么,但是Google確信這樣的損失對(duì)他們來(lái)說(shuō)意味深遠(yuǎn),因?yàn)樵谟脩?hù)執(zhí)行搜索的數(shù)字、廣告點(diǎn)擊顯示的數(shù)字以 及收入之間有著直接的關(guān)聯(lián)。除了加速自己的Web服務(wù)器,考慮到這樣做對(duì)其他人也有著積極的作用,Google還想加速全部互聯(lián)網(wǎng)。
Google認(rèn)為,除了帶寬限制,還有其他多方面的因素導(dǎo)致了互聯(lián)網(wǎng)的慢速:
- 在Web開(kāi)發(fā)中,網(wǎng)站沒(méi)有遵循最佳實(shí)踐,導(dǎo)致不必要的慢速;
- Web服務(wù)器經(jīng)常沒(méi)有專(zhuān)為速度而優(yōu)化;
- 幾個(gè)互聯(lián)網(wǎng)協(xié)議是在10年或者15年之前設(shè)計(jì)的,那時(shí)候的網(wǎng)站和Web應(yīng)用和現(xiàn)在大不相同;
- 瀏覽器也是最近才開(kāi)始關(guān)注速度,很多互聯(lián)網(wǎng)用戶(hù)還在使用慢速的瀏覽器。
那么對(duì)Google來(lái)說(shuō),互聯(lián)網(wǎng)速度應(yīng)該快到什么程度?從一頁(yè)導(dǎo)航到另一頁(yè)的速度應(yīng)該和翻一頁(yè)雜志的速度相當(dāng);允許視頻和圖像內(nèi)容盡可能快;用戶(hù)之 間的實(shí)時(shí)協(xié)作不能因鏈接而延遲,包括移動(dòng)用戶(hù)等。等等這些,Google想看到HTML得到優(yōu)化,這一點(diǎn)在HTML 5里也已經(jīng)得到體現(xiàn),但是他們還希望優(yōu)化甚至用一些更好的東西改變HTTP和TCP。然而,考慮到要在目前的基礎(chǔ)設(shè)施中做這樣巨大的投資,這個(gè)改變還相當(dāng) 難以實(shí)現(xiàn)。
為了指導(dǎo)其他人如何加速他們的網(wǎng)站,Google提供了如下一些指南:
- CSS:每個(gè)聲明只使用一次
- gzip壓縮如何工作
- HTTP緩存
- 使用網(wǎng)頁(yè)加速工具優(yōu)化網(wǎng)站性能
- 將瀏覽器回流降至最小程度
- 優(yōu)化JavaScript代碼
- 優(yōu)化Web圖片
- PHP性能技巧
- 預(yù)讀取資源文件
- 正確包含樣式表和腳本文件
- 降低HTML文檔的文件大小
- 用戶(hù)體驗(yàn)和網(wǎng)站優(yōu)化
他們還從各種信息源收集到以下一些工具:
- Page Speed(網(wǎng)頁(yè)加速工具):這是一個(gè)開(kāi)源的Firefox/Firebug插件。網(wǎng)站管理人員和Web開(kāi)發(fā)人員可以使用網(wǎng)頁(yè)加速工具估算自己網(wǎng)頁(yè)的性能,并得到如何優(yōu)化這些網(wǎng)頁(yè)的建議。
- AOL Page Test(AOL網(wǎng)頁(yè)測(cè)試):這是一個(gè)用來(lái)測(cè)量和分析使用IE時(shí)網(wǎng)頁(yè)性能的開(kāi)源工具。
- Cuzillion:該工具能夠快速構(gòu)建網(wǎng)頁(yè),并發(fā)現(xiàn)組件如何交互。每天,瀏覽器都會(huì)有各種無(wú)法預(yù)料的行為,有時(shí)因?yàn)闉g覽器不同,行為也各異。Cuzillion能夠讓你發(fā)現(xiàn)這些行為,并和其他人分享示例網(wǎng)頁(yè)。
- Fiddler 2:這是一個(gè)Web調(diào)試代理工具,能夠記錄計(jì)算機(jī)和互聯(lián)網(wǎng)之間的所有HTTP流量。Fiddler讓你能夠監(jiān)測(cè)到所有HTTP流量,設(shè)置斷點(diǎn),虛擬流入和流出數(shù)據(jù)。Fiddler有一個(gè)強(qiáng)大的基于事件的腳本子系統(tǒng),能夠使用任何.NET語(yǔ)言進(jìn)行擴(kuò)展。
- Firebug:Firebug和Firefox相集成,讓你在瀏覽網(wǎng)頁(yè)時(shí)就能使用多個(gè)開(kāi)發(fā)工具。你可以編輯、調(diào)試、監(jiān)視任何Web頁(yè)面的CSS、HTML和JavaScript代碼。
- Hammerhead:Hammerhead給Firebug增加了一個(gè)Tab,用來(lái)測(cè)量網(wǎng)頁(yè)的裝載時(shí)間。
- httperf:這個(gè)工具能夠用來(lái)測(cè)量Web服務(wù)性能。它提供了一個(gè)用來(lái)創(chuàng)建不同HTTP工作量和測(cè)量服務(wù)器性能的功能。Httperf的重點(diǎn)不是實(shí)現(xiàn)一個(gè)特定的標(biāo)準(zhǔn),而是提供一個(gè)自動(dòng)的、高性能的工具,以幫助構(gòu)建微觀和宏觀層面的標(biāo)準(zhǔn)。
- HttpWatch:這是一個(gè)HTTP瀏覽器和調(diào)試器,和IE以及Firefox相集成,在瀏覽器窗口的配合下,對(duì)HTTP和HTTPS進(jìn)行無(wú)縫監(jiān)視。
- IBM Page Detailer(IBM網(wǎng)頁(yè)設(shè)計(jì)器):一個(gè)圖形工具,讓W(xué)eb站點(diǎn)開(kāi)發(fā)人員和編輯快速而準(zhǔn)確地從客戶(hù)角度估算網(wǎng)頁(yè)性能。IBM網(wǎng)頁(yè)設(shè)計(jì)器提供了網(wǎng)頁(yè)從何處被傳遞到Web瀏覽器的行為細(xì)節(jié)。這些細(xì)節(jié)包括時(shí)間、大小,以及一個(gè)網(wǎng)頁(yè)中每個(gè)條目的身份。
- JSLint:一個(gè)JavaScript項(xiàng)目,用來(lái)查找JavaScript程序中的錯(cuò)誤,是一個(gè)代碼質(zhì)量工具。
- JSMin:一個(gè)過(guò)濾器,可以從JavaScript文件中清除評(píng)論和不必要的空白。
- Microsoft VRTA(Visual Round Trip Analyzer):VRTA工具幫助Web開(kāi)發(fā)人員和測(cè)試人員可視化網(wǎng)頁(yè)下載、尋找最佳實(shí)踐和改變,以?xún)?yōu)化Web性能。VRTA檢查通訊協(xié)議、定位往返過(guò)多的原因,以及推薦的解決方案等。
- mon.itor.us:提供個(gè)性化的Ajax儀表盤(pán)界面,檢查服務(wù)器性能和有效性,創(chuàng)建運(yùn)行時(shí)間報(bào)告,跟蹤訪問(wèn)者,檢查CPU、內(nèi)存和其他系統(tǒng)資源,并在監(jiān)測(cè)到異常時(shí)給用戶(hù)報(bào)警。
- OOCSS:允許開(kāi)發(fā)者撰寫(xiě)快速、可維護(hù)、基于標(biāo)準(zhǔn)的前臺(tái)后臺(tái)代碼。
- Pylot:一個(gè)用來(lái)測(cè)試Web服務(wù)性能和可擴(kuò)展性的開(kāi)源工具。它運(yùn)行HTTP載入測(cè)試,這在容量規(guī)劃、標(biāo)準(zhǔn)、分析和系統(tǒng)調(diào)整時(shí)都很有作用。Pylot生成并發(fā)載入(HTTP請(qǐng)求)、驗(yàn)證服務(wù)器響應(yīng)和產(chǎn)生數(shù)據(jù)報(bào)告。
- Smush It:使用圖像格式特定無(wú)損圖像優(yōu)化工具,擠出你圖像中的所有冗余字節(jié)——還不改變他們的外觀和可視質(zhì)量。通過(guò)優(yōu)化圖像,你可以得到一個(gè)所節(jié)省字節(jié)多少的報(bào)告,所有修改的圖片也可以作為一個(gè)單一zip包下載。
- Wbox: 該工具意在當(dāng)你測(cè)試HTTP相關(guān)文件時(shí),能夠多些樂(lè)趣。用它可以執(zhí)行很多任務(wù),包括:為Web應(yīng)用、Web服務(wù)生成內(nèi)容所用的時(shí)間,Web應(yīng)用負(fù)載,無(wú)需 改變本地解析器測(cè)試虛擬主機(jī)配置,在發(fā)出正確的HTTP代碼的情況下檢查重定向是否工作正常,測(cè)試HTTP壓縮是否正常工作以及是否讓服務(wù)器頁(yè)面更快,將 其作為一個(gè)配置少的HTTP服務(wù)器來(lái)分享文件。
- Yahoo! YSlow:用來(lái)分析網(wǎng)頁(yè),并基于一套高性能Web頁(yè)的規(guī)則,給出提高性能的方法。YSlow是一個(gè)Firefox插件,和Firebug Web開(kāi)發(fā)工具相集成。
- YUI Compressor:一個(gè)JavaScript壓縮器,用來(lái)生產(chǎn)比其他大多數(shù)工具更高壓縮比的文件。
最后,Google加速網(wǎng)站包含了一個(gè)討論組,任何人都可以在此分享他們的技術(shù)和創(chuàng)意,以用來(lái)加快網(wǎng)頁(yè)的訪問(wèn)速度。
InfoQ網(wǎng)站上相關(guān)內(nèi)容鏈接:Google開(kāi)源網(wǎng)頁(yè)加速工具Page Speed
查看英文原文:Google Calls for a Joint Effort to Speed Up the Internet