Windows 操作系统上的软实时 - 需要考虑什么?
当我们在Windows上构建软实时应用程序时,我们应该考虑什么(软件和硬件):每XXX毫秒发生一次并且应该在YYY毫秒内完成的任务。 (尽管错过截止日期的后果很糟糕,但应用程序仍然可以从错过的截止日期中恢复 - 因此是“软”实时)。
我已经想到了几个问题: 是否有应该更改、查看的注册表设置? 使用外置显卡比板载显卡更好吗?
预期答案示例: 如果您使用 TCP,您应该阅读(并禁用)Nagle 算法,因为它会延迟数据包发送。
(这也许可以在社区维基中转出)
What consideration should we have (both software and hardware) when we build a soft-realtime application on windows : a task that occurs every XXX milliseconds and that should be completed within YYY milliseconds. (Altough consequences of missing a deadline are bad, the application can still recover from missed deadline - hence the "soft" realtime).
A few questions that already comes to my mind:
Are there registry settings that should be changed, looked at?
Is it better to use external graphic card instead of onboard video?
Example expected answer:
You should read on (and disable) Nagle Algorithm if you use TCP as it can delay packet sending.
(This could maybe be turned in community wiki)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
考虑使用 多媒体类调度程序服务
来自文档
另一个可用的选项是调整 线程优先级,但您需要非常小心,不要对此过于激进。
Consider using Multimedia Class Scheduler Service
From the doc
Another option availale to you is to adjust your thread priorities but you need to be very careful not to get to aggressive with this.
从硬件角度来看,这会在服务器级设备上运行吗?如果是这样,则适用通常的步骤。禁用超线程、睿频加速和 CPU C 状态。在关键进程上实现一定程度的 CPU 亲和性。
Hardware-wise, will this be running on server-class equipment? If so, the usual steps apply. Disable hyperthreading, turbo boost, and CPU C-states. Implement some level of CPU-affinity on your critical processes.