在看代码的时候看到两个宏函数:likely() unlikely()
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
__builtin_expect()大致作用是处理分支预测,让编译器编译的时候可以做一些优化,优化可能性大的分支程序
if( like...
分类:
系统相关 时间:
2014-10-19 17:12:40
阅读次数:
230
在阅读linux源代码的时候,我们经常会发现likely和unlikely,这两个宏语句定义在compiler.h下,#definelikely(x) __builtin_expect(!!(x),1)#defineunlikely(x) __builtin_expect(!!(x),0)这里我们需要先了解__builtin_expect:#define__builtin_expect(x,expected_value)(x)所..
分类:
系统相关 时间:
2014-09-29 17:40:51
阅读次数:
321
在阅读linux源代码的时候,我们经常会发现likely和unlikely,这两个宏语句定义在compiler.h下,#definelikely(x) __builtin_expect(!!(x),1)#defineunlikely(x) __builtin_expect(!!(x),0)这里我们需要先了解__builtin_expect:#define__builtin_expect(x,expected_value)(x)所..
分类:
系统相关 时间:
2014-09-29 17:24:01
阅读次数:
256
likely和unlikey函数源码分析
看代码的时候常常遇到likely和unlikely这两个函数,大概知道是用来检测返回值的,但是也不知道是什么。今天实在不爽了,就去看源码了。
在内核代码树的 include/linux/compiler.h里
void ftrace_likely_update(struct ftrace_branch_...
分类:
其他好文 时间:
2014-08-15 17:57:29
阅读次数:
233
com.mchange.v2.c3p0.impl.C3P0ImplUtils generateVmId
信息: Failed to get local InetAddress for VMID. This is unlikely to matter. At all. We'll add some extra randomness
java.net.UnknownHostException: Alo...
分类:
Web程序 时间:
2014-07-26 02:57:56
阅读次数:
4343
likely() 与 unlikely()是内核(2.6的版本应该都有)中定义的两个宏。位于/include/linux/compiler.h中,
具体定义如下:
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
__builtin_expect是gcc...
分类:
系统相关 时间:
2014-05-21 06:36:34
阅读次数:
368