成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【性能優化】性能測量工具-WebPageTest

開發 開發工具
WebPagetest的核心是用于測量和分析網頁的性能。它是 google 開源項目《make the web faster》的子項目,它本來是 AOL 內部使用的工具,后來在2008年基于BSD開源。

[[398940]]

前言

工欲善其事,必先利其器。了解完性能指標之后,性能優化的目標已經明確了。接下來我們借助一些性能測量工具,明確網頁距離優化目標之前還有多大的差距。一個好的工具可以讓你事半功倍,接下來我將用3篇文章分別介紹3個主流的測量工具:

Chrome DevTools Performance 主要用于日常開發過程中分析運行時的性能表現。

Lighthouse 用來生成網頁的性能評測報告。

WebPageTest 用來進行整體的網站質量評估、一站式性能評估。

有了這3個工具我們就可以從多個維度對網站性能進行全方位的評估。

性能測量工具-WebPageTest

WebPagetest的核心是用于測量和分析網頁的性能。它是 google 開源項目《make the web faster》的子項目,它本來是 AOL 內部使用的工具,后來在2008年基于BSD開源。

官方網址:http://www.webpagetest.org/

原理

WebPageTest是一個PHP網站,用戶輸入網址、地點、自定義腳本等信息后,參數發送到后臺。后臺做些邏輯處理,再通過瀏覽器相關的代理程序,啟動Chrome、Firefox或IE。瀏覽器執行完后將數據傳回給后臺,后臺再將數據保存起來,最后通過各種形式(圖、表格、列等),將分析數據過的數據,呈現給用戶。

導航欄

首先打開WebPageTest 官網,可以看到如下界面:

  1. Test History:能查看到測試歷史記錄。
  2. API:webgetest API Key 允許開發人員在其工作流中自動執行性能測試,以不斷提供更快的網頁。WebPageTest 支持的擴展開發,只要申請到一個key后,就可以根據提供的API做開發。不過調用次數都會有限制,所以如果要做還是在自己本地或內網布置一個WebPageTest的環境。
  3. Forums:論壇信息,里面有許多提問和回答,覆蓋面非常廣。
  4. Docs:英文版工具文檔,中文文檔可以參照這個網址 https://github.com/pwstrick/WebPagetest-Docs
  5. Blog:博客,里面是一些 WebpageTest 的一些最佳實踐方案等
  6. About:給出了WebPageTest的Github地址,以及發布版的下載地址等信息。

基本使用

基礎配置

  1. 輸入網頁網址:確定要測試的頁面后,轉到WebPagetest并為其指定要測試的頁面的URL,這個地址可以是首頁也可以是詳情頁。
  2. 選擇地理位置:WebPagetest具有位于世界各地的測試機器,你應該從接近用戶訪問的位置進行測試,從列表中選擇一個位置,或者單擊Select from Map按鈕,從地圖視圖中選擇一個位置(只需單擊氣球🎈,然后確定)
  3. 選擇瀏覽器:不同的位置支持不同的瀏覽器,如果給定的位置沒有正在尋找的瀏覽器,可以嘗試不同的位置。通常建議使用chrome瀏覽器。

高級配置

  1. 運行測試次數:為保證測試結果的準確性,每次運行都會測試多次
  2. 是否重復訪問:因為重復訪問會優先走緩存,所以結果可能會有差別
  3. 提交測試:一切配置完成后,點擊Start Test按鈕,請求將發送到測試位置進行測試。測試可能需要一段時間才能運行,具體取決于有多少次測試(在測試之前至少有一分鐘的測試時間,但是它的時間甚至更長)。一旦測試完成,你將得到結果。

本地部署

官網中只能測試一些外網能訪問的網站,但是往往開發過程中有些項目我們都發布在公司內部的局域網內,所以就需要將WebPagetest部署到本地,使用本地的網絡環境來測試性能。

注意:這里提到的本地部署,是指本地局域網內服務器上部署的網站,不是本地電腦的locallhost,因為在本地測試locallhost往往是不準確的,因為大多數情況下,本地開發調試的頁面都是webpack dev sever服務器,資源沒有經過壓縮,所以加載速度也會很慢,和線上環境的結果往往會大相徑庭。

具體步驟如下:

1.下載并安裝docker鏡像,下載地址 https://docs.docker.com/get-docker/

為什么安裝docker鏡像?docker類似于一個虛擬機,在虛擬機上下載WebPageTest的鏡像,我們就是不需要獨立安裝WebPageTest這個軟件了,這樣可以不受系統限制,完全獨立出一套虛擬的環境,通過端口映射到本地服務。

2.拉取鏡像

  1. docker pull webpagetest 
  2. docker pull webpagetest/agent 

3.運行server實例

  1. docker run -d -p 4000:80 webpagetest/server 

4.運行agent實例

  1. docker run -d -p 4000:80 --network="host" -e "SERVER_URL=http://localhost:4000/work/" -e "LOCATION=Test" webpagetest/agent 

5.訪問http://localhost:4000,會看到 WebPagetest 官網一樣的頁面,在這個頁面中輸入本地其它端口的網址,我們就可以測試本地服務的性能了。

結果分析

1. 優化等級

在結果頁面的頂部是一組最關鍵的性能優化等級。涵蓋了適用于所有網站的基本優化,任何不是A或B的都需要進行進一步的優化.

2. 性能指標總結

結果頁頂部的數據表提供了有關已加載頁面的一些高級信息,其中首次和重復訪問視圖的指標都有清晰的看到首次和重復視圖訪問的結果。

首次視圖(First View):首次視圖的測試,將會把瀏覽器的緩存和Cookie清除,表示訪問者第一次訪問該網頁將體驗到的情況。

重復視圖(Repeat View):重復視圖會在首次視圖測試后立即執行,不會清除任何內容。瀏覽器窗口在First View測試后關閉,然后啟動新瀏覽器以執行Repeat View測試。重復視圖測試模擬的是用戶離開頁面后,馬上再進入此頁面的場景。

除此之外,這里介紹幾個關鍵指標:

  1. 首字節時間(Time To First Byte):首字節時間(通??s寫為TTFB)指的是被測量為從初始化請求,到服務器響應的第一個字節,被瀏覽器接收的時間(不包括DNS查詢、TCP連接的時間)。
  2. 頁面渲染時間(Start Render):測量的時間是從初始化請求,到第一個內容被繪制到瀏覽器顯示的時間。Start Render是通過捕獲頁面加載的視頻,并在瀏覽器第一次顯示除空白頁之外的其他內容時查看每個幀來衡量的。它只能在實驗室測量,通常是最準確的測量。
  3. 速度指數(Speed Index):速度指數是一個計算的指標,用來衡量頁面渲染用戶可見內容的迅速程度(越低越好)。關于計算方法的更多信息,請點擊此處查看。
  4. 阻塞交互時間(Total Blocking Time):是指頁面阻塞,用戶不能進行交互的累計時間,這里可以看到二次訪問時資源緩存減少了阻塞時間。
  5. 文檔加載完畢(Document Complete):從初始化請求,到加載所有靜態內容(圖片、CSS、JavaScript等),但可能不包括由JavaScript執行觸發的內容,可以理解為開始執行window.onload。
  6. 頁面所有元素加載時間(Fully Loaded):指的是從初始化請求,到Document Complete后,2秒內(中間幾百毫秒輪詢)沒有網絡活動的時間,但這2秒是不包括在測量中的,所以會出現兩個差值大于或小于2秒。

首字節加載時間和首字節時間的區別

首字節加載時間(First Byte Time):是指瀏覽器收到HTML內容的第一個字節時間,包括DNS查找、TCP連接、SSL協商(如果是HTTPS請求)和TTFB。

首字節時間 TTFB(Time To First Byte):首字節是指被測量為從初始化請求,到服務器響應的第一個字節,被瀏覽器接收的時間(不包括DNS查詢、TCP連接的時間)。我理解TTFB的計算是從下圖中requestStart到responseStart這之間的時間,也就是請求發送出去的時間。

所以,首字節加載時間 = DNS查找時間+TCP連接時間+SSL協商時間+TTFB請求發送出去的時間

3. waterfall chart 請求瀑布圖

在結果頁的下方我們可以看到每次運行顯示的瀑布圖,點擊進去可以看到具體的參數詳情,如下圖所示:

在這張圖上我們可以看到所有的請求資源都列舉了出來,里面的信息比 Chrome DevTools給出的信息更加詳細,例如下方的幾個指標:

  1. Browser Main Thread:瀏覽器主線程占用情況,什么時間比較忙
  2. Long Tasks:長任務時間,也就是頁面的科技可交互時間,紅色區域代表阻塞時間
  3. Bandwidth In:帶寬
  4. CPU Utization:CPU占用情況

除此之外,在下圖中我們還可以看到一些優化的點,比如42-50這些并行請求的圖片資源減少了資源加載時間,還有57-58黃色高亮部分資源發生了重定向,WebpageTest 提示我們這里資源發生了變化,可以優化為不進行資源重定向。

總結

  1. WebpageTest的使用方式:訪問官網測試、安裝本地鏡像測試
  2. WebpageTest的關鍵指標:首字節時間(First Byte)、頁面渲染時間(Start Render)、速度指數(Speed Index)、阻塞交互時間(Total Blocking Time)、文檔加載完畢(Document Complete)、頁面所有元素加載時間(Fully Loaded)
  3. 首字節加載時間 = DNS查找時間 + TCP連接時間 + SSL協商時間 + TTFB請求發送出去的時間

 

責任編輯:姜華 來源: 陽姐講前端
相關推薦

2021-05-10 08:08:25

工具LightHouse性能優化

2021-05-11 10:03:06

性能優化工具Performance

2011-06-14 13:48:07

性能優化工具

2021-09-13 10:23:52

工具ProfilerSQL

2020-06-22 07:30:00

React開發工具

2025-06-03 00:00:06

性能優化性能指標響應時間

2009-08-12 15:24:00

C#測量cpu性能

2011-08-03 16:51:01

jQuery

2021-11-29 11:13:45

服務器網絡性能

2013-06-09 15:31:35

jQueryjQuery優化性能優化

2017-08-08 09:45:43

Python性能優化

2009-06-16 16:10:59

Hibernate性能

2020-09-19 21:26:56

webpack

2009-09-08 09:45:23

App Engine性

2022-02-16 14:10:51

服務器性能優化Linux

2024-05-10 08:44:53

C#軟件開發優化代碼

2019-03-01 11:03:22

Lustre高性能計算

2024-02-02 15:21:08

工具頁面性能

2014-12-10 10:12:02

Web

2012-08-20 09:22:32

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久国产网站 | 亚洲精品乱码 | 欧美情趣视频 | 中文字幕免费视频 | 日本午夜在线视频 | 视频一区在线观看 | 亚洲一区在线免费观看 | 欧美精品一区在线发布 | 嫩草网| 天天搞天天操 | 久久久久国产 | 欧美日韩国产一区二区三区不卡 | 欧美精品v | 男女羞羞视频在线免费观看 | av黄色免费在线观看 | 欧美999| 乱一性一乱一交一视频a∨ 色爱av | 国产成人在线视频播放 | 成人免费视频观看视频 | 伊人99 | 久久精品中文字幕 | 国产日韩视频 | 亚洲精品综合 | 成人福利在线观看 | 久久www免费视频 | 日本特黄a级高清免费大片 成年人黄色小视频 | 精品视频一区二区 | 国产成人av免费看 | 国产欧美一区二区久久性色99 | 欧美日韩精品久久久免费观看 | 亚洲色图婷婷 | 国产午夜精品一区二区三区四区 | 久久精品综合 | 国产欧美在线视频 | 国产精品高清一区二区 | 性色视频在线观看 | 夜夜草视频 | 精品美女久久久久久免费 | 亚洲成av片人久久久 | 日本一区二区三区在线观看 | 午夜二区|