[轉載] HTML5應用開發功耗調優化小結

轉自:http://software.intel.com/zh-cn/articles/html5/?utm_campaign=CSDN&utm_source=intel.csdn.net&utm_medium=Link&utm_content=others-%20HTML5

Dawei Cheng 程大偉

HTML5應用開發功耗調優化小結

功耗優化介紹

在WWW 2012 – Session: Mobile Web Performance會議論文中發現一篇對HTML5移動應用開發非常有參考意義的由斯坦福CS系發表的一篇論文,Who Killed My Battery: Analyzing Mobile Browser Energy Consumption。裏面詳細談到了在mobile browser中,如何寫網站可以節省功耗,測量和研究的結果爲移動端HTML5應用開發提供了重要的參考價值

移動瀏覽器和網站分析

首先介紹一下測量工具:採用安捷倫34410A高精度數字功率萬用表,可以實時測量設備的功耗情況。開發機選用Android Developer Phone 2 (ADP2) HTC手機。他們對web瀏覽器添加了一些功能模塊便於測量,架構圖如下:


典型的Facebook手機端網頁打開,在安捷倫測量儀上可以看到的功耗變化如下圖:


功耗優化點介紹

通過這樣的測量,發現在移動設備中主要的功耗點在:

1. 網絡的傳輸, 不管是3G網絡還是WiFi傳輸都是移動設備功耗熱點。

2. 頁面的加載和渲染,由於頁面加載和渲染需要大量的CPU和GPU時間去執行,是移動設備的另一個功耗熱點。

在Web網頁中,主要的功耗點在於:

1. JavaScript代碼的解釋執行

2. CSS規則的匹配和渲染

3. 圖片的解析和渲染 根據上面的分析和實驗,

總結出以下一些對開發者有價值的功耗優化點:

1. 優化JavaScript解釋執行的效率

由於JavaScript解釋執行是一個功耗熱點,所以在移動端優化其效率是可以顯著提升功耗的,主要集中的以下三點來優化:

1. 動態的JavaScript執行會增加頁面的功耗,所以除非在必要的情況下,儘量少用AJAX。

2. 僅加載對當前頁面執行有用函數,即只加載和本頁面有關的JavaScript。傳統Web開發經常加載一張大的JavaScript函數,每個頁面都可以直接用。但是實際用戶可能僅僅看了當前頁面就關閉了,並不進入其他頁面。

3. 儘量避免使用一些通用的JavaScript庫,尤其未經移動端裁剪和優化的庫。其中就包括JQuery.js。

通過對WiKipedia的JavaScript解釋執行的分析,在優化前,功耗爲15J, 優化後僅爲9.5J, 功耗節省了43%

2. 降低CSS的功率消耗

和JavaScript一樣,在CSS的頁面中,同樣僅僅加載本頁面有關的CSS內容,這點本人在做Web開發時,也同樣,將所有頁面的CSS寫在兩個甚至一個CSS文件中,可以實現重用,但是這樣在移動端顯然不是節省功耗的選擇。

通過的Apple.com移動網站的分析,在優化CSS的樣式後,功耗從12J降低到7J,節省了42%。

3. 優化圖片的解析和加載

通過的移動瀏覽器的分析,發現JPEG格式的圖片是最節省功耗的。傳統的網頁開發者一般講小圖標做成png格式,中等的做成gif,大圖片纔會選擇JPEG格式。但是在移動端,瀏覽器不管是大圖小圖,統一是JPEG格式功耗最省。

通過分析Facebook和Amazon,將其頁面上的所有圖片轉換爲JPEG,功耗的優化結果如下圖:


參考資料

1. http://www2012.wwwconference.org/

2. http://www2012.wwwconference.org/program/workshops/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章