为什么AMD的君必强产品怎么样越用越强

翻译自Intel指令)PAUSE指令提升了自旋等待循环(spin-wait loop)的性能当执行一个循环等待时,Intel P4或Intel Xeon处理器会因为检测到一个可能的内存顺序违规(memory order violation)而在退出循环时使性能大幅下降PAUSE指令給处理器提了个醒:这段代码序列是个循环等待。处理器利用这个提示可以避免在大多数情况下的内存顺序违规这将大幅提升性能。因為这个原因所以推荐在循环等待中使用PAUSE指令。出处:PAUSE指令

简单点说用pause可以提示CPU接下来的指令序列是用来自旋等待,就不用做memory reorder了cache什么嘚也不用浪费掉了——要知道,cache是很宝贵的资源啊这指令还有附送的功能——减少能耗。

在循环中加入cpu_pause指令可以减少ngx_atomic_cmp_set 的执行,在及时判断lock以及cpu开销两者中做了一个平衡。

sched_yield()会让出当前线程的CPU占有权然后把线程放到静态优先队列的尾端,然后一个新的线程会占用CPU那这個和sleep()有啥区别呢?

ngx_cpu_pause 是一个亮点是均衡及时判断和cpu消耗两者的一种取舍。

我要回帖

更多关于 强采产品 的文章

 

随机推荐