为什么像推杆这样的解决方案声称是"实时的"?



我已经使用Pusher一段时间了。我一直认为"实时"是指"瞬间"。最近我进入了这篇文章:https://en.wikipedia.org/wiki/Real-time_computing,一句话引起了我的注意:

"实时程序必须保证在指定时间内做出响应限制">

他们给出了一个基于音频处理的例子:

"考虑一个音频DSP示例;如果一个过程需要2.01秒分析、合成或处理2.00秒的声音,而不是实时。然而,如果它需要1.99秒,它是或可以制造转换为实时DSP处理。">

我的问题:1.这个定义只适用于硬件/电子设备,或者也可以应用于软件?2.如果适用于软件,它是否适用于像Pusher这样的远程服务?3.推进器被视为"实时"的时间限制是什么?4.WebRTC、Firebase等其他服务的时间限制是什么?

很抱歉有一篇篇幅很长的帖子没有具体回答你的问题,但我希望它能让你更好地理解"实时"定义的来源。


是的,"实时"的意思是"瞬时",这是可以理解的混淆。但如果你真的开始思考,你很快就会发现"瞬时"很难定义。

瞬时是什么意思?从命令时间到响应时间的0(零)秒响应时间(如0秒0毫秒0纳秒0 ps)在物理上是不可能的。然后,我们可以试着说,即时意味着命令响应时间是即时感知的,即它不会被视为延迟。但是。。。"瞬间感知"究竟是什么意思?被人类感知?好的,那很好,我们正在取得进展。人眼和大脑的图像处理是一个非常非常复杂的机器,它并不是简单地以fps工作,但我们可以使用数据来近似一些。人眼可以"感知屏幕上闪烁的图像1/250秒"。这将是0.004秒或250帧/秒。因此,通过这种近似,如果图形程序具有响应时间<0.004秒,或者运行速度将超过250 fps。但我们知道,在实践中,大多数人认为游戏在60帧/秒(0.01666秒)时很流畅。所以现在我们有两个不同的答案。我们能以某种方式为他们辩护吗?对我们可以说,在理论上,实时性意味着0.004秒,但在实践中,0.01666秒就足够了。

我们本可以很高兴在这里停下来,但我们正在探索之旅。因此,让我们进一步思考。您希望"实时"航空电子自动化系统具有0.01666秒的响应时间吗?你认为"实时"核电站系统的0.01666秒响应时间可以接受吗?如果指令完成时间为0.0166秒,那么阀门实际关闭需要15秒的控油系统是否会被定义为"实时"?所有这些问题的答案肯定是否定的。为什么?回答这个问题,你就会回答为什么"实时"被定义为:"实时程序必须保证在指定的时间限制内做出响应"。

很抱歉,我对"Pusher"一点都不熟悉,但我可以回答你的第一个问题和第二个问题的一部分:"实时"可以应用于任何需要"反应"或响应某种形式输入的系统。这里的"系统"比你想象的更通用。大脑是合格的,但在工程的背景下,它意味着整个堆栈:硬件+软件。

  1. 此定义仅适用于硬件/电子设备,也可以应用于软件

它也适用于软件。任何有时间限制的事情。例如,有实时操作系统,甚至还有Java的实时规范。

  1. 如果适用于软件,它是否适用于Pusher等远程服务

如果涉及网络,很难看出如何操作。更可能的是,他们的意思只是"及时",或者,正如名字所暗示的,这只是一种草率的说法"推送模式"。该网站上的大量用户似乎认为"实时"意味着"真实世界"。在IT中,它意味着一个能够满足严格实时约束的系统。你引用的维基百科定义是正确的,但这个例子并不令人满意。

  1. 推进器被视为"实时"的时间限制是什么

问题格式错误。真正的问题是Pusher是否真的能满足严格的实时约束,以及它们的最小值可能是多少。如果没有操作系统和网络支持,这似乎根本不可能。

  1. 其他服务(如WebRTC、Firebase)的时间限制是什么

同上。

对"实时"一词的大多数解释都指传统的静态类型,通常被称为"硬实时",这些以及动态实时系统基本原理导论中的其他基本术语。

相关内容

最新更新