跨大西洋 ping 比将像素发送到屏幕还快?

Kon*_*lph 841 networking bandwidth graphics-card ip

约翰卡马克在 推特上写道

我可以比向屏幕发送像素更快地向欧洲发送 IP 数据包。怎么样?

如果这不是约翰卡马克,我会把它归档在“互联网很愚蠢”下。

但这是约翰卡马克。

这怎么可能是真的?

为了避免讨论推文中的确切含义,这就是我想得到的回答:

在最好的情况下,将单个 IP 数据包从美国的服务器发送到欧洲的某个地方需要多长时间,从软件触发数据包的时间到上面的软件接收到数据包司机级别?

在最好的情况下,从驱动程序级别以上的软件更改像素值的点开始测量,像素显示在屏幕上需要多长时间?


即使假设跨大西洋连接是金钱可以买到的最好的光纤电缆,并且约翰坐在他的 ISP 旁边,数据仍然必须编码在 IP 数据包中,从主存储器到他的网卡,从那里通过墙上的电缆进入另一座建筑物,可能会跳过那里的几台服务器(但我们假设它只需要一个中继),穿过海洋被光子化,通过光电传感器转换回电脉冲,并最终被另一块网卡解释。让我们停在那里。

至于像素,这是一个简单的机器字,通过 PCI express 插槽发送,写入缓冲区,然后刷新到屏幕。即使考虑到“单个像素”可能会导致整个屏幕缓冲区被传输到显示器这一事实,我也不认为这会变慢:这不像是“一个一个”地传输位 - 相反,它们是连续的电脉冲,它们之间没有延迟地传输(对吗?)。

小智 1370

将数据包发送到远程主机的时间是 ping 报告的时间的一半,它测量往返时间。

我测量的显示器是连接到 PC的Sony HMZ-T1头戴式显示器。

为了测量显示延迟,我有一个小程序,它位于轮询游戏控制器的自旋循环中,在按下按钮时清除不同的颜色并交换缓冲区。我用 240 fps 摄像头录制了显示游戏控制器和屏幕的视频,然后计算按下按钮和屏幕开始显示变化之间的帧数。

游戏控制器以 250 Hz 的频率更新,但没有直接的方法来测量输入路径上的延迟(我希望我仍然可以将事物连接到并行端口并使用输入/输出 Sam 指令)。作为对照实验,我在具有 170 Hz 垂直回扫的旧 CRT 显示器上进行了相同的测试。Aero 和多台显示器可能会引入额外的延迟,但在最佳条件下,您通常会在按钮关闭后的两个 240 Hz 帧的屏幕上的某个点(垂直同步已禁用)开始看到颜色变化。USB HID处理过程中似乎有 8 毫秒左右的延迟,但我想在未来更好地确定这一点。

看到桌面 LCD 显示器采用 10+ 240 Hz 帧在屏幕上显示变化的情况并不少见。索尼 HMZ 的平均帧数约为 18 帧,或总共 70 多毫秒。

这是在多显示器设置中,所以几个帧是驱动程序的错误。

某些延迟是技术固有的。LCD 面板需要 4-20 毫秒才能真正改变,具体取决于技术。单芯片LCoS显示器必须缓冲一个视频帧,才能从压缩像素转换为顺序色彩平面。激光光栅显示器需要一定量的缓冲才能从光栅返回转换为来回扫描模式。帧顺序或上下拆分立体 3D 显示器有一半时间无法更新中间帧。

OLED显示器应该是最好的显示器之一,正如eMagin Z800所证明的那样,它的延迟与 60 Hz CRT 相当,比我测试的任何其他非 CRT 都要好。

索尼的糟糕表现是由于糟糕的软件工程。某些 TV 功能(例如运动插值)需要缓冲至少一帧,并且可能会从更多帧中受益。其他功能,如浮动菜单、格式转换、内容保护等,可以以流式方式实现,但最简单的方法是在每个子系统之间进行缓冲,在某些系统中可能会堆积多达六帧.

这是非常不幸的,但它都是可以修复的,我希望未来更多地依靠显示器制造商来解决延迟问题。

  • 我不想因为过多的离题评论而锁定这个答案。我们都很高兴约翰提供了这个答案,但我们不需要 25 条评论来表达他们的感激、怀疑或兴奋。谢谢你。 (230认同)
  • 您的 USB 触发器可能作为低速 USB 设备(125 微秒的总线帧)运行,导致最小的 8 毫秒延迟(硬件问题)。也许试试 PS2 键盘? (31认同)
  • 听起来您是在说,当 LCD 制造商声称响应时间为 5 毫秒时,这可能是更改原始面板所需的时间,但显示器在实际驱动之前增加了相当多的时间缓冲和处理信号液晶显示器。这是否意味着制造商发布虚假/误导性规格? (14认同)
  • @psusi http://doubledeej.blogspot.com/2009/07/lies-damn-lies-and-hdtv-spec-numbers.html http://www.zdnet.com/blog/ou/how-lcd-makers -lie-to-you-about-viewing-angles/930 http://gizmodo.com/5669331/why-most-hardware-specs-are-total-bullshit http://www.maximumpc.com/article/features /display_myths_shattered (11认同)
  • @Marcus Lindblom 通过寻找,你的意思是阅读?我认为在这种情况下,*他如何*获得他的号码与号码一样重要 - 不会通过引用另一个号码来解决对推文的怀疑。上下文也有帮助 - 他最直接地被这个带有次优软件的特定监视器惹恼了。 (7认同)
  • 以下是我测量显示延迟的方法:大多数芯片组提供一些 GPIO 引脚,您可以使用 `outp` 指令进行切换(当然,您的程序必须以非常特权的方式运行才能使其工作)。然后在数字和模拟连接上克隆屏幕。显示变为数字。将光电二极管放在显示器上,将模拟视频和光电二极管连接到示波器,并将示波器的外部触发器连接到 GPIO。现在您可以使用 GPIO 进行触发并准确测量信号出现在线路和显示器上所需的时间。 (6认同)
  • 如果您更清楚地表达了您为监视器获得的时间,那将会有所帮助。不得不在你的(否则写得很好)答案中寻找 70 毫秒。:) (3认同)
  • 希望在未来,直视 LED 显示器将随手可得。索尼已经宣布将在未来一两年内推出一款产品,我实际上有机会看到一款产品并与它背后的一位工程师交谈。我专门询问了延迟,他说是纳秒级的。加上一个 60 英寸的屏幕非常薄,重量轻,并且需要大约 20 瓦的功率才能运行,所以我的意思是,这怎么不是一项成功的技术? (2认同)

Aka*_*ash 72

一些显示器可能有明显的输入延迟

考虑到与糟糕的显示器和视频卡组合相比,出色的互联网连接是可能的

资料来源:

主机游戏:滞后因素 • 第 2 页

因此,在 30FPS 时,我们获得了 8 帧/133 毫秒的基准性能,但在第二个剪辑中,游戏已降至 24FPS,在我扣动扳机和 Niko 开始霰弹枪射击动画之间有明显的 12 帧/200 毫秒延迟。这是 200 毫秒加上来自屏幕的额外延迟。哎哟。

一个显示器可以再增加 5-10ms

因此,控制台最多可能有 210 毫秒的延迟

而且,根据大卫的评论,最好的情况应该是大约 70 毫秒发送一个数据包

  • 对不起,但我仍然没有看到这真的回答了这个问题。这句话讲述了“拉动触发器”,这意味着在输入处理、场景渲染等方面做更多的工作,而不仅仅是将像素发送到屏幕。此外,与现代硬件性能相比,人类的反应速度相对较差。那个家伙*思考*他扣动扳机和实际扣动扳机之间的时间很可能是瓶颈。 (14认同)
  • @KonradRudolph:感知是很奇怪的东西。不久前我读过一篇关于实验控制器的文章,该控制器可以直接从脊髓读取脉冲。人们会觉得计算机在他们点击之前就在行动,即使点击它是他们自己的神经命令做出反应。 (12认同)
  • @Zan Lynx:这是一个已知的效果。谷歌搜索“本杰明·利贝特的半秒延迟”。人类意识需要大量的处理时间。现在认为正在发生的一切实际上都发生在过去。您的所有感官都在为您提供半秒前事件的“综合多媒体体验”。此外,事件似乎被大脑“打上了时间戳”。必须相对于触觉刺激延迟直接的脑刺激,以便受试者报告感觉是同时发生的! (11认同)
  • 链接的文章显示,此分析的作者购买了一种特殊设备,可以准确显示您按下按钮的时间,所以我认为他们不只是在摆弄数字。 (2认同)

Jam*_*yan 39

在显示器上演示输入延迟非常简单,只需将液晶显示器贴在 crt 旁边,然后在屏幕上显示时钟或动画并记录下来。一个可以落后一秒或更多。自从游戏玩家等更多地注意到这一点以来,LCD 制造商已经收紧了这一点。

例如。Youtube 视频:输入延迟测试 Vizio VL420M