跨大西洋 ping 速度比向螢幕發送像素還要快?

跨大西洋 ping 速度比向螢幕發送像素還要快?

約翰·卡馬克 發推文,

我向歐洲發送 IP 封包的速度比向螢幕發送像素的速度還要快。這是怎麼回事?

如果這不是約翰·卡馬克,我會把它歸類在「網路是愚蠢的」之下。

但這是約翰·卡馬克。

這怎麼可能是真的呢?

為了避免討論推文的確切含義,我想得到以下答案:

在最好的情況下,從美國的伺服器發送到歐洲某個地方的單一 IP 封包需要多長時間,從軟體觸發封包的時間到上面的軟體接收該封包的時間進行測量駕駛員等級?

在最好的情況下,從驅動程式等級以上的軟體更改該像素值的點開始測量,一個像素需要多長時間才能顯示在螢幕上?


即使假設跨大西洋連接是金錢可以買到的最好的光纖電纜,並且 John 就坐在他的 ISP 旁邊,數據仍然必須編碼在 IP 數據包中,從主存儲器傳輸到他的網卡,從那裡通過牆上的電纜進入另一棟建築物,可能會跳過那裡的幾台伺服器(但我們假設它只需要一個繼電器),穿過海洋被光子化,透過光電感測器轉換回電脈衝,最後由另一個網卡解釋。我們就到此為止吧。

至於像素,這是一個簡單的機器字,透過 PCI Express 插槽發送,寫入緩衝區,然後刷新到螢幕。即使考慮到“單一像素”可能會導致整個螢幕緩衝區傳輸到顯示器的事實,我也不明白這會變得更慢:這並不像位「一個接一個」地傳輸 - 相反,它們是連續的電脈衝,它們之間沒有延遲地傳輸(對嗎?)。

答案1

向遠端主機發送資料包的時間是 ping(測量往返時間)報告的時間的一半。

我測量的顯示器是索尼HMZ-T1連接 PC 的頭戴式顯示器。

為了測量顯示延遲,我有一個小程序,它位於旋轉循環中輪詢遊戲控制器,清除不同的顏色並在按下按鈕時交換緩衝區。我使用 240 fps 相機錄製顯示遊戲控制器和螢幕的視頻,然後計算按下按鈕和螢幕開始顯示變化之間的幀數。

遊戲控制器以 250 Hz 的頻率更新,但沒有直接的方法來測量輸入路徑上的延遲(我希望我仍然可以將東西連接到並行連接埠並使用輸入/輸出 Sam 指令)。作為對照實驗,我在具有 170 Hz 垂直回掃功能的舊 CRT 顯示器上進行了相同的測試。 Aero 和多個顯示器可能會帶來額外的延遲,但在最佳條件下,您通常會在按鈕按下後看到螢幕上的某個點(垂直同步已停用)兩個240 Hz 幀開始發生顏色變化。似乎有 8 毫秒左右的延遲USB HID處理,但我想在未來更好地解決這個問題。

桌上型 LCD 顯示器需要 10+ 240 Hz 幀才能在螢幕上顯示變化的情況並不罕見。 Sony HMZ 的平均幀數約為 18 幀,即總時間超過 70 毫秒。

這是在多顯示器設定中,因此有幾幀是驅動程式的錯誤。

某些延遲是技術固有的。 LCD 面板實際變化需要 4-20 毫秒,具體取決於技術。單晶片矽基液晶顯示器必須緩衝一個視訊畫面才能從壓縮像素轉換為連續色彩平面。雷射光柵顯示器需要一定量的緩衝才能從光柵返回轉換為來回掃描模式。幀順序或上下分離立體 3D 顯示器有一半時間無法更新中格。

有機發光二極體顯示器應該是最好的,正如一個伊瑪金Z800,其延遲與 60 Hz CRT 相當,比我測試的任何其他非 CRT 都要好。

索尼的糟糕表現是由於糟糕的軟體工程。某些電視功能(例如運動插值)需要緩衝至少一幀,並且可能會受益於更多幀。其他功能,如浮動選單、格式轉換、內容保護等,可以以流方式實現,但簡單的方法是在每個子系統之間進行緩衝,在某些系統中,緩衝可能會堆積多達六個幀。

這是非常不幸的,但這都是可以修復的,我希望將來在延遲方面更多地依靠顯示器製造商。

答案2

某些顯示器可能有明顯的輸入延遲

與蹩腳的顯示器和顯示卡組合相比,擁有出色的網路連線是可能的

資料來源:

主機遊戲:滯後因素 • 第 2 頁

因此,在30FPS 下,我們獲得了8 幀/133 毫秒的基線性能,但在遊戲下降到24FPS 的第二個剪輯中,在我扣動扳機和Niko 開始霰彈槍射擊動畫之間存在明顯的12 幀/200 毫秒延遲。這就是 200 毫秒加上螢幕的額外延遲。哎喲。

顯示器可以再增加 5-10ms

因此,控制台最多可以有 210 毫秒的延遲

而且,根據 David 的評論,發送資料包的最佳情況應該是 70 毫秒左右

答案3

在顯示器上示範輸入延遲非常簡單,只需將 LCD 貼在 CRT 旁邊,然後在螢幕上顯示時鐘或動畫並記錄即可。一個人可能落後一秒或更長時間。由於遊戲玩家等更加註意到這一點,液晶顯示器製造商已經加強了這一點。

例如。Youtube 影片:輸入延遲測試 Vizio VL420M

相關內容