基準測試:HTTP/3 有多快? - requestmetrics
為了瞭解 HTTP/3 產生什麼樣的效能差異,需要一個基準測試設定。
為了更接近實際使用情況,測試設定由三個場景組成 - 一個小站點、一個內容豐富的站點(大量影像和一些 JS)和一個單頁面應用程式(在 JS 上很重)。我檢視了幾個真實世界的站點,並對每個站點的影像和 JS 檔案的數量求平均值,然後編寫了一些與這些資源數量(和大小)匹配的演示站點。
HTML
- 小型站點
- 10 個2kb 到 100kb 的 JS 檔案
- 從 1kb 到 50kb 的10張影像
- 總有效載荷大小600kb,總共 20 個阻塞資源
- 內容站點
- 50 個2kb 到 1mb 的 JS 檔案
- 55張大小從 1kb 到 1mb 的影像。
- 總有效負載大小10MB,總共 105 個資源(有時在開發工具中檢視 cnn.com,您會明白為什麼它如此之大)
- 單頁應用程式
- 從 2kb 到 1mb 的85 個JS 檔案
- 30張大小從 1kb 到 50kb 的影像。
- 總有效負載大小15MB,總共 115 個資源(有時在開發工具中檢視 JIRA)
伺服器
Caddy用於提供所有資產和 HTML。
- 提供所有響應Cache-Control: "no-store"以確保瀏覽器每次都會重新下載。
- TLS 1.2 用於 HTTP/1.1 和 HTTP/2
- TLS 1.3用於 HTTP/3。
- 為所有 HTTP/3 連線啟用了0-RTT
客戶端
讓瀏覽器自動連續請求同一頁面 20 次,在頁面載入後等待 3 秒開始下一個請求。網際網路連線的額定速度為 200mbps。資料捕獲時,計算機上沒有執行其他應用程式。
測試地點
測試是從我在明尼蘇達州的計算機到由 Digital Ocean 託管的三個獨立資料中心進行的:
- 美國紐約,相比Http2:
小型站點快200 毫秒
內容站點快325 毫秒
單頁應用程式快300 毫秒
- 倫敦,英國,相比http2:
小型站點快600 毫秒(與紐約相比,速度提高了3 倍)
1200ms(以上為內容網站更快的3.5倍與紐約相比的加速)
單頁應用程式快1000 毫秒(與紐約相比,速度提高了3 倍以上)
- 印度班加羅爾:當涉及更大的地域和更多的網路躍點時,HTTP/3 繼續領先。也許更引人注目的是 HTTP/3 的響應時間分組的緊密程度。當資料包傳輸數千英里時,QUIC 會產生很大的影響。
結論
在任何情況下,HTTP/3 都比HTTP/2更快!
為什麼 HTTP/3 這麼快?
- 真正的多路複用
HTTP/3 真正的多路複用特性意味著堆疊中的任何地方都不會發生行頭阻塞。當從更遠的地方請求資源時,在地理上,資料包丟失的可能性要高得多,並且 TCP 需要重新傳輸這些資料包。
- 0-RTT 是遊戲規則的改變者
此外,HTTP/3 支援O-RTT QUIC 連線,這降低了與伺服器建立安全 TLS 連線所需的往返次數。
相關文章
- hadoop基準測試_Hadoop TeraSort基準測試Hadoop
- MySQL基準測試MySql
- TGI 基準測試
- 測試基準資料的準備
- MySQL學習 - 基準測試MySql
- 固態硬碟基準測試硬碟
- TPCC-MySQL基準測試MySql
- 【MYSQL 基準測試結果】MySql
- MySQL基準測試工具sysbenchMySql
- 《Redis官方教程》-基準測試Redis
- 【Mysql】sysbench基準測試工具MySql
- [轉帖]sysbench基準測試
- JMH- benchmark基準測試
- rewrk一個更現代的http框架基準測試實用程式HTTP框架
- postgresql:pgbench基準效能測試SQL
- hadoop-2.6.0基準測試Hadoop
- 【工具】基準測試工具之sysbench
- 一、測試基礎(3)
- 技術基礎 | Apache Cassandra 4.0基準測試Apache
- 資料庫基準測試工具 sysbench資料庫
- 公有云RDS-MySQL基準測試MySql
- 【MySQL】利用sysbench進行基準測試MySql
- Hadoop TeraSort 基準測試實驗Hadoop
- MySQL基準壓力測試工具MySQLSlapMySql
- 【工具】基準測試工具之iozone
- Go 語言基準測試入門Go
- [總結] 簡述 MySQL 基準測試工具MySql
- 【總結】簡述 MySQL 基準測試工具MySql
- Java基準效能測試--JMH使用介紹Java
- 使用 JMH 做 Kotlin 的基準測試Kotlin
- 詳解 MySQL 基準測試和 sysbench 工具MySql
- 利用sysbench進行MySQL OLTP基準測試MySql
- 【工具】基準測試工具之tpcc-mysqlMySql
- 基於Dubbo的http自動測試工具分享HTTP
- 應用上雲可以有多快?
- 瀏覽器可以有多快?瀏覽器
- MySQL效能基準測試對比:5.7 VS 8.0MySql
- Java JSON解析器效能基準測試JavaJSON