在看linux内核代码的时候,经常会看到likely(x)和unlikely(x)宏的使用。那这两个宏有什么作用呢?
这两个宏在内核中的定义如下:
# define likely(x) __builtin_expect(!!(x), 1)
# define unlikely(x) __builtin_expect(!!(x), 0)
可见这里使用了gcc的内建函数__builtin_expect()。
__builtin_expect (long exp, long c)函数:
该函数用来引导gcc进行条件分支预测。在一条指令执行时,由于流水线的作用,CPU可以同时完成下...
GCC阅读全文
这篇文章大概在他出世时读过,
您好,请问原作者的信息有吗,
从前在新浪博客看过先生的系列
深有感触,我做了10年的硬件
谢谢分享
想问一下,可以转载到我的个人
华夏文明的沧桑
我也加入求索啦