2017-02-23 62 views
2

對於我的研究,我正在分析HTTP/2與HTTP/1.1和HTTPS相比的性能。爲什麼我的HTTP/2流比HTTP/1.1和HTTPS慢

對於我的測試,我加載了一組128個圖像,以查看HTTP/2是否受益於其多路複用流。每個測試的圖像分別具有2KB,20KB和50KB的大小。

I got the following results for Page Load Time

最初,我會假定HTTP/2會比HTTP/1.1或更快的最大速度是HTTP/1.1。但爲什麼HTTP/2在20KB和50KB的測試中運行速度降低了20%以上。有沒有人知道原因可能是什麼?

我在服務器端使用nginx 1.10.0。 在客戶端的chrome上。延遲:50ms。數據包丟失率低。

+0

只有結果,沒有關於您正在測量的案例的進一步細節,沒有多少人可以提供建議。也許你可以詳細說明正在加載的內容,比如資產數量,http請求的詳細描述以及什麼類型的資產。或者,甚至更好,您的測試代碼的可重現樣本。 –

回答

0

我剛剛用Jetty進行了測試(免責聲明,我是HTTP/2 Jetty維護者)。

Jetty 9.4.2,JDK 8u121,模擬網絡往返50 ms(通過tc)。

20幅圖像,每頁2K:

HTTP/1.1: ~275 ms 
HTTP/2:  ~170 ms 
HTTP/2 Push: ~155 ms 

20幅圖像,20K每個:

HTTP/1.1: ~380 ms 
HTTP/2:  ~200 ms 
HTTP/2 Push: ~155 ms 

20幅圖像,50K每個:

HTTP/1.1: ~380 ms 
HTTP/2:  ~220 ms 
HTTP/2 Push: ~155 ms 

除了這種快速測試,體驗我們知道HTTP/2多路複用確實可以有效減少最終用戶的延遲。 HTTP/2推送的HTTP/2更好。 這也可以通過大量您可以在網上找到的HTTP/2演示來證實。

上面的快速測試代碼可以找到here

我懷疑它可能是一些nginx問題,也許與流量控制有關(因爲只有在較大圖像大小時纔有問題)。

+0

感謝您的回答!我懷疑同樣的事情,流量控制是問題。任何想法如何我可以用nginx解決這個問題? – pSpindler

+0

將問題報告給nginx項目。 – sbordet

相關問題