你不时会听到一些故事,这些故事旨在说明某人在某件事情上有多优秀,有时你也会听到他对代码优化的兴趣,以至于他优化了自己的延迟循环。
因为这听起来真的很奇怪,因为启动一个“计时器中断”比一个优化的热门等待要好得多,而且从来没有人会告诉你优化黑客的名字。
这让我想知道这到底是一个城市神话还是真的?
你说什么,现实还是虚构?
谢谢约翰
Update:听起来ShuggyCoUk在做些什么,不知道我们能不能找到一个例子。
Update:稍微澄清一下,这个问题是关于“延迟”函数本身以及它是如何实现的,而不是如何和在何处调用它。这个目的是什么,以及系统是如何变得更好的。
Update:这不是神话,那些家伙似乎存在
谢谢ShuggyCoUk
发布于 2009-06-30 10:37:18
这不仅仅是事实的核心.
自旋等待比基于信号的中断或屈服要好得多。
然而,旋转等待是很难得到正确的。
这就是为什么在大多数情况下你让别人为你写旋转等待循环的原因。
- on arm this is barrier()
- on x86 this is rep\_nop()
- Accessible in .Net via [Thread.SpinWait](http://msdn.microsoft.com/en-us/library/system.threading.thread.spinwait.aspx)
- see [this document](http://developer.apple.com/documentation/Darwin/Conceptual/KernelProgramming/synchronization/synchronization.html#//apple_ref/doc/uid/TP30000905-CH218-BEHJDFCA) and note that it encourages the use only of lck\_spin\_t
至于一些使用暂停进行旋转等待的引用:
发布于 2009-06-29 13:49:42
我经常听到的版本是一群硬件程序员,他们开发了一种特殊的指令来优化他们操作系统的空闲(非繁忙)循环。在克尼汉和派克的书 中提到了这一点,即编程的实践,但即使在那里,他们也承认这可能是一个城市神话。
发布于 2009-06-29 20:25:31
我听说过一些程序员的故事,他们故意在项目的早期放置长延迟循环,然后将其作为“优化”,以给管理留下深刻印象。不知道这些故事是不是假的。
https://stackoverflow.com/questions/1058390
复制相似问题