|
移動平臺逐漸成為客戶端應(yīng)用的主流載體之一,為了消除應(yīng)用在不同移動平臺的兼容性,采用Web形式開發(fā)移動應(yīng)用成為潮流(當(dāng)然特別依賴于原生功能和性能的應(yīng)用,如游戲可能例外)。隨著Web移動應(yīng)用越來越多,其性能方面的分析與研究也逐漸受到重視。本文試圖從多個角度來闡述移動Web應(yīng)用性能優(yōu)化的各個方面,其中主要引用了Google性能優(yōu)化專家Steve Souders的精彩觀點,希望能夠為國內(nèi)移動開發(fā)社區(qū)帶來一些啟示。
隨著Web2.0應(yīng)用的廣泛采納,Web性能越來越受到重視。有關(guān)Web應(yīng)用的性能調(diào)優(yōu)標(biāo)準(zhǔn)早已經(jīng)深入人心,如Yahoo!的《Best Practices for Speeding Up Your Web Site》和Google的《Web Performance Best Practices》,這些標(biāo)準(zhǔn)在桌面瀏覽器的Web性能分析中起到了關(guān)鍵的作用,
現(xiàn)在輪到移動平臺的性能調(diào)優(yōu)了。技術(shù)專家Steve Souders之前在博客中宣布,今后他將會把大部分時間和精力放在移動Web性能的研究工作上,其基本的思路歸結(jié)為如下幾點:
- 衡量:確定分析性能的指標(biāo)和標(biāo)準(zhǔn)。
- 分析:通過工具對性能問題進(jìn)行度量。
- 研究:分析性能問題,找出根源。
- 最佳實踐/分享:總結(jié)出最有可能改進(jìn)移動性能的各種方法,并發(fā)布出來。
- 提示:開發(fā)提示性能問題的工具
- 自動化:提供服務(wù)修補問題。
讀者可能會問:為什么要特別關(guān)注移動Web應(yīng)用性能問題?傳統(tǒng)的桌面Web應(yīng)用經(jīng)驗不能適用嗎?我們簡單列舉一下移動平臺的幾個特殊性:
- 移動設(shè)備的硬件限制。
- 移動瀏覽器的精簡實現(xiàn)。
- 移動網(wǎng)絡(luò)的不穩(wěn)定性。
- 移動Web開發(fā)的發(fā)展階段。
從上面四點,讀者會發(fā)現(xiàn)移動Web應(yīng)用有其特殊的生存環(huán)境,傳統(tǒng)的Web性能優(yōu)化標(biāo)準(zhǔn)不能完全適用于移動平臺,所以我們需要單獨將其作為一個研究領(lǐng)域。考慮到移動網(wǎng)絡(luò)的不穩(wěn)定性,Souders建議大家先去掉這一不穩(wěn)定因素,即首先關(guān)注通過wifi上網(wǎng)的移動設(shè)備的性能問題,這樣就縮小了研究的范圍。等時機成熟了再全面引入網(wǎng)絡(luò)環(huán)境的性能影響。
目前,移動Web應(yīng)用的性能研究工作主要困難在于——工具太少!大多數(shù)瀏覽器工具(Firebug、Page Speed、YSlow、Dynatrace)都運行在桌面操作系統(tǒng)上,不支持移動設(shè)備,其中有一些工具是瀏覽器插件,但是目前不支持安裝在瀏覽器的移動版本上,另外一些則是特定的桌面操作系統(tǒng)的可執(zhí)行文件,同樣不支持移動平臺。Steve Souders分析了當(dāng)前桌面工具的可用性:
- Bookmarklet(小書簽,是除了瀏覽器插件的又一擴展形式)一般適用于所有瀏覽器。它們是純JavaScript腳本,也支持移動瀏覽器。
- Greasemonkey適用于大多數(shù)瀏覽器。它們大部分是JavaScript代碼,一小部分是依賴于瀏覽器的API,因此難以構(gòu)建。它們優(yōu)于Bookmarklet的特點在于功能稍微強大一點,包括自動啟動等。
- 瀏覽器插件是最強大的,但也是最難構(gòu)建的。開發(fā)過程根據(jù)瀏覽器而異,大多數(shù)非主流瀏覽器不支持插件。
從以上的分析來看,bookmarklet是當(dāng)前最方便的工具選擇,Souders推薦了一套優(yōu)秀的分析bookmarklet工具包,包括:Firebug Lite、DOM Monster、SpriteMe、CSSess、Zoompf和Page Resources。為了方便性能分析人員使用,他建立了一個meta-bookmarklet頁面,大家可以通過訪問一個網(wǎng)頁使用所有的bookmarklet工具!在移動瀏覽器上安裝的過程也比較簡單:
- 單擊鏈接Mobile Perf bookmarklet。
- 將該頁加入書簽。
- 編輯書簽的URL,刪除#之前的所有內(nèi)容,只保留以"
Javascript:
"開頭的URL即可。
現(xiàn)在簡單介紹Bookmarklet工具集的一些成員:
- Firebug Lite
幾乎所有Web開發(fā)人員都知道Firebug。其實,F(xiàn)irebug Lite是Firebug的bookmarklet 版本,可以運行在包括IE和WebKit的所有瀏覽器中。它提供了Console、HTML viewer和DOM inspector等功能,不過Firefug的一些高級功能無法支持,比如profiler、debugger和NET Panel,但是當(dāng)你使用的移動瀏覽器不支持Firebug時,F(xiàn)irebug Lite就一個好工具。
- Page Resources
Souders的作品,能夠分析DOM樹,找到所有下載的資源。不過由于是bookmarklet形式,它無法提供HTTP頭部信息、文件大小、下載時間等,也無法找到不在DOM中的資源,比如圖片信標(biāo)(image beacon)。
- DOM Monster
DOM Monster這個工具,最初需要購買Thomas Fuchs和Amy Hoy的電子書JavaScript Performance Rocks才能得到授權(quán)使用,但是Souders說服了Thomas和Amy將其開源,該工具能夠提供頁面的DOM數(shù)據(jù),并提示如何改進(jìn)性能。
- SpriteMe
Souders的作品,能夠為分散的CSS背景圖片創(chuàng)建CSS sprites以提高性能。
- CSSess
該工具可以找到未使用的CSS選擇器。
- Zoompf
Zoompf會執(zhí)行一系列的性能檢查算法來分析網(wǎng)頁。該工具與其他不同的一點在于:它不會在移動瀏覽器中分析當(dāng)前的頁面。取而代之的是,它會讓你訪問一個Web服務(wù)器,重新下載網(wǎng)頁并作分析,可以快速了解當(dāng)前頁面的性能問題。
感興趣的朋友可以嘗試使用這些工具來分析桌面或者移動web應(yīng)用的頁面,看看能否從中發(fā)現(xiàn)性能瓶頸。InfoQ還會繼續(xù)推出有關(guān)性能分析的專題文章,敬請關(guān)注。
it知識庫:關(guān)注移動Web應(yīng)用性能問題(上),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。