Optimization 是";“优化延迟”;是神话还是真实?
有时你会听到一些故事来说明某人在某件事情上有多么出色,有时你会听说这个家伙是如何如此热衷于代码优化,以至于优化了他的延迟循环 因为这听起来很奇怪,因为启动“计时器中断”比优化的buzy等待要好得多, 没有人会告诉你黑客的名字 这让我怀疑这是一个城市神话还是真实的 你说什么,现实还是虚构 谢谢 约翰Optimization 是";“优化延迟”;是神话还是真实?,optimization,Optimization,有时你会听到一些故事来说明某人在某件事情上有多么出色,有时你会听说这个家伙是如何如此热衷于代码优化,以至于优化了他的延迟循环 因为这听起来很奇怪,因为启动“计时器中断”比优化的buzy等待要好得多, 没有人会告诉你黑客的名字 这让我怀疑这是一个城市神话还是真实的 你说什么,现实还是虚构 谢谢 约翰 更新:听起来ShuggyCoUk好像发现了什么, 不知道我们是否能找到一个例子 更新:仅作一点澄清,这个问题是关于“延迟”功能本身以及如何实现它,而不是如何以及在何处调用它。 这个目的是什么,以及这
更新:听起来ShuggyCoUk好像发现了什么, 不知道我们是否能找到一个例子 更新:仅作一点澄清,这个问题是关于“延迟”功能本身以及如何实现它,而不是如何以及在何处调用它。 这个目的是什么,以及这个系统是如何变得更好的 更新:这不是神话,那些家伙似乎存在 谢谢
ShuggyCoUk我一直听到的版本是一群硬件程序员开发了一种特殊指令,优化了他们操作系统的空闲(非忙)循环。《编程实践》中提到了这一点,但即使在那里,他们也承认这可能是一个城市神话。我听过一些程序员的故事,他们在项目早期有意加入长延迟循环,后来将其作为“优化”删除,以给管理层留下深刻印象。从来没有弄清楚这些故事是否是虚构的。这不仅仅是真相的核心 自旋等待比基于信号的中断或屈服要好得多
- 您可以用一些吞吐量来换取大大减少的延迟。
- 这在操作系统本身中通常是至关重要的李>
- 您可以自由地执行中断处理程序中不可能执行的操作
- 例如,内存分配李>
- 您可以对等待的时间间隔进行更细粒度的控制,因为您基本上可以测量周期计数李>
- 如果可以,应使用适当的怠速说明,其中包括:
- 可以关闭内核的部分电源,提高功耗/散热,甚至可以让其他内核运行得更快李>
- 在基于超线程的CPU中,您可以李>
- 您可能认为是no op的指令可能会导致CPU通过超标量执行单元无序执行它们。由此产生的代码可能会出现不可预见的无序伪影,迫使CPU在不需要的暂停和内存障碍方面付出大量努力
- 在Linux中有
- 手臂上是障碍物()
- 在x86上,这是rep_nop()
- 窗户里有
- 可通过.Net访问
- OSX,除非您在内核中
- 请参阅并注意,它鼓励仅使用lck_spin_\t
-
- 另请注意,由于降低了功耗,这在非P4上也更好