1. 程式人生 > >Web前端性能分析

Web前端性能分析

解析html 改善 rac compress 方法 遇到 speed cpu 也會

Web前端性能通常上代表著一個完全意義上的用戶響應時間,包含從開始解析HTML文件到最後渲染完成開始的整個過程,但不包括在輸入url之後與服務器的交互階段。下面是整個過程的各個步驟:

  1. 開始解析html文件,從head到body按順序從上到下。
  2. 當解析到head部分的css外部鏈接時,同步去下載,如果遇到外部js鏈接也是下載
  3. 接著解析body部分,邊解析邊開始生成對應的DOM樹,同時等待css文件下載
  4. 等到css文件下載完畢,那麽就同步去用已經生成的DOM節點+css去生成渲染樹
  5. 渲染樹生成結構模型,接著同步計算渲染樹節點的布局位置
  6. 計算完成節點坐標後,同步開始渲染
  7. 進行過程中如果遇到圖片則跳過去渲染下面內容,等待圖片下載成功後會返回來在渲染原來圖片的位置
  8. 如果渲染過程中出現js代碼調整DOM樹機構的情況,也會再次重新來過,從修改DOM那步開始
  9. 最終所有節點和資源都渲染完成

整個過程中會有很多的分別請求,所以TCP連接會很多,並且每一個用完都會自己關了,或者需要在keep-live字段標記上不自動關閉。

對於Web前端的性能分析從HTML網頁的結構出發,分析其代碼的合理性。性能分析工具使用Page Speed。Page Speed最初是Google內部使用的改進網頁設計的工具——它整合在Firefox的著名插件Firebug中。當用戶運行Page Speed,可以立即獲得如何改進網頁載入速度的建議。Page Speed工具提供瀏覽器插件和在線網站測評兩種方式,這裏使用在線網站的方式進行評測。

Page Speed Insights能根據以下內容衡量網頁如何提升其性能:

l 首屏加載時間:從用戶請求新頁面到瀏覽器呈現首屏內容所用的時間。

l 完整的網頁加載時間:從用戶請求新網頁到瀏覽器完全呈現網頁所用的時間。

Page Speed的網站為:

https://developers.google.com/speed/pagespeed/insights/?hl=zh-CN

網頁截圖如下:

在文本框中分別輸入我們需要評測的兩個網站http://sse.hust.edu.cn和http://cs.hust.edu.cn,即可獲得對應評分。Page Speed得分範圍是從0到100分。分數越高,代表性能越好。85分或更高分表明網頁性能良好。

其評分規則在以下鏈接:

https://developers.google.com/speed/docs/best-practices/rules_intro

包括10個Page Speed規則和5個可用性規則,分別是:

Page Speed規則

l 避免目標網頁重定向

l 啟用壓縮功能

l 改善服務器響應時間

l 使用瀏覽器緩存

l 縮減資源大小

l 優化圖片

l 優化CSS發送過程

l 按優先級排列可見內容

l 移除阻止呈現的JavaScript

l 使用異步腳本

可用性規則

l 避免使用插件

l 配置視口

l 調整內容的尺寸,使其符合視口設置

l 適當調整點按目標的尺寸

l 使用清晰可辨的字體大小

我們對目標網站的評分結果如下:

  1. 軟件學院官網PC端

  1. 軟件學院官網移動端

  1. 計算機學院官網PC端

  1. 計算機學院官網移動端

總結:根據以上結果我們匯總得到性能報告如下。

測試網站平臺

軟院PC

軟院移動

計院PC

計院移動

總分數(%)

Needs Work 72

Poor 64

Needs Work 69

Poor 57

啟用壓縮

縮減CSS

縮減服務器響應時間

避免使用著陸頁重定向

縮減HTML

縮減JavaScript

按優先級排列可見內容

優化圖片

清除首屏內容中阻止呈現的JavaScript和CSS

使用瀏覽器緩存

可以看到,軟件學院的網站相對於計算機學院都完成了縮減JavaScript的優化,但也缺少了縮減服務器響應時間的優化,計算機學院的移動端沒有完成按優先級排列可見內容。另外還有一些別的優化沒有完成,分別是:

  1. 縮短服務器響應時間:服務器響應時間表示加載必要HTML以開始呈現服務器所托管網頁的時間過長。應將服務器響應時間控制在200毫秒以內。有很多潛在因素都可能會延緩服務器響應,例如應用邏輯緩慢、數據庫查詢緩慢、路由緩慢、框架、庫、資源CPU不足或內存不足等。需要考慮所有這些因素,才能改善服務器的響應時間。
  2. 縮減JavaScript,可以使用工具Closure Compiler、JSMin或YUI Compressor。創建一個使用這些工具的構建流程,以便縮減開發文件的大小並對其進行重命名,然後將其保存到正式版目錄。
  3. 按優先級排列可見內容:Page Speed Insights檢測到系統需要進行更多次的網絡往返來呈現網頁的首屏內容。工具提供的建議是:為提高網頁加載速度,限制呈現網頁首屏內容所需的數據(HTML標記、圖片、CSS和JavaScript)大小。可以嘗試以下幾種方法:結構化HTML,以便首先加載關鍵的首屏內容;減少資源所用的數據量。
  4. 縮減HTML:要縮減HTML的大小,可以使用Page Speed Insights Chrome擴展功能來生成優化版HTML代碼。上面4個測試例子中都有17%左右的大小可以縮減。
  5. 優化圖片:盡量減小圖片尺寸,以縮減用戶等待資源加載的時間。適當地設置圖片的格式並進行壓縮可以節省大量的數據字節空間。建議是對所有圖片進行基本優化和高級優化。基本優化包括裁剪不必要的區域,將顏色深度降至可接受的最低水平,移除圖片評論以及將圖片保存為恰當的格式。可以使用任意圖片編輯程序(例如,GIMP)執行基本優化。高級優化包括對JPEG和PNG文件執行進一步的壓縮(無損壓縮)。
  6. 清除首屏內容中阻止呈現的JavaScript和CSS:網頁中有多個阻止呈現的腳本資源和CSS資源。這會導致呈現網頁的過程出現延遲。在資源加載完畢之前,網頁上不會直接呈現任何首屏內容。應該嘗試暫緩或異步加載阻止資源,或者將這些資源的關鍵部分直接內嵌到HTML中。
  7. 使用瀏覽器緩存:在HTTP標頭中為靜態資源設置過期日期或最長存在時間,可指示瀏覽器從本地磁盤中加載以前下載的資源,而不是通過網絡加載。

結論:兩個網站的前端都經過有一定程度的優化,但是仍有可優化的空間,總體來說,軟件學院的web前端性能優化優於計算機學院。

Web前端性能分析