ChinaUnix.net
相关文章推荐:

likely unlikely

原文:http://blog.csdn.net/rstevens/archive/2007/09/24/1798561.aspx 内核中的 likely() 与 unlikely() 在 2.6 内核中,随处可以见到 likely() 和 unlikely() 的身影,那么为什么要用它们?它们之间有什么区别? 首先要明确: if(likely(value)) 等价于 if(value) if(unlikely(value)) 也等价于 if(value) 也就是说 likely() 和 unlikely() 从阅读和理解...

by cssjtuer - Linux文档专区 - 2009-10-23 14:00:19 阅读(860) 回复(0)

相关讨论

最近看代码看到unlikely(),有点迷糊,特上网查了下,贴在此,留作备忘,也希望能帮到和我一样迷糊的朋友:) ------------------------------------------------------------------ Kernel : likely/unlikely macros Submitted by Kedar Sovani on February 11, 2005 - 7:46am Applications/tools Ever wondered what the likely and unlikely macros in the linux kernel...

by gaozhenbo1985 - Linux文档专区 - 2009-12-03 18:34:21 阅读(779) 回复(0)

在linux中判断语句经常会看到likely和unlikely,例如: if(likely(value)){ } else{ } 简单从表面上看 if(likely(value)) == if(value), if(unlikely(value)) == if(value)。 也就是likely和unlikely是一样的,但是实际上执行是不同的,加likely的意识是value的值为真的可能性更大一些,那么执行if的机会大,而unlikely表示value的值为假的可能性大一些,执行else机会大一些。加上这种修饰,编译成二进制代码时likely使得if...

by skyily - Linux文档专区 - 2009-06-22 15:17:33 阅读(762) 回复(0)

[color="#000066"]> 有关likely和unlikely ================================ Author: taoyuetao Email: [email=tao_yuetao@yahoo.com.cn][color="#0000ff"]tao_yuetao@yahoo.com.cn[/email] Blog: taoyuetao.cublog.cn ================================ 在 [color="#0000ff"]linux 中判断语句经常会看到likely和unlikely,例如: if(likely(value)){ } else{ } 简单从表面上看if(likely(value)) == if(value),if(unlikely(val...

by iibull - Linux文档专区 - 2009-03-25 17:26:21 阅读(596) 回复(0)

ver wondered what the likely and unlikely macros in the linux kernel are ? The macros are defined as : #define likely(x) __builtin_expect((x),1) #define unlikely(x) __builtin_expect((x),0) The __builtin_expect is a method that gcc (versions >= 2.96) offer for programmers to indicate branch prediction information to the compiler. The return value of __builtin_expect is the first argument...

by kinwin - Linux文档专区 - 2008-09-20 21:23:56 阅读(691) 回复(0)

================================ Author: taoyuetao Email: [email=tao_yuetao@yahoo.com.cn]tao_yuetao@yahoo.com.cn[/email] Blog: taoyuetao.cublog.cn ================================ 在 linux 中判断语句经常会看到likely和unlikely,例如: if(likely(value)){ } else{ } 简单从表面上看if(likely(value)) == if(value),if(unlikely(value)) == if(value)。 也就是likely和unlikely是一样的,但是实际上执行是不同...

by taoyuetao - Linux文档专区 - 2007-01-31 09:04:50 阅读(644) 回复(0)

内核中有很多使用likely(),unlikely()的地方。 这两个宏的作用是优化,如果去掉这个宏也完全可以,只是性能会差点,gcc不给优化了。 比如:sk_buff.c中: 753 static inline unsigned char *skb_pull(struct sk_buff *skb, unsigned int len) 754 { 755 return unlikely(len > skb->len) ? NULL : __skb_pull(skb, len); 756 } 完全可以改成: 753 static inline unsigned char *skb_pull(struct sk_buff *skb, unsigned i...

by zuzhihui - Linux文档专区 - 2006-03-13 17:41:55 阅读(683) 回复(0)

#define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) #define __builtin_expect(exp,c) (exp) #endif 看了好久没看明白,怎么回事。 likely,unlikely的作用是什么? 那个__builtin_expect的宏定义有什么作用? 为什么 !!(x) 这么用?后面的 1 是干什么的?

by turbo99cn - 内核/嵌入技术 - 2006-01-04 22:55:37 阅读(1123) 回复(3)

#define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) #define __builtin_expect(exp,c) (exp) #endif 看了好久没看明白,怎么回事。 likely,unlikely的作用是什么? 那个__builtin_expect的宏定义有什么作用? 为什么 !!(x) 这么用?后面的 1 是干什么的?

by turbo99cn - 内核源码 - 2006-01-04 22:55:37 阅读(2196) 回复(3)

likely()与unlikely()在2.6内核中,随处可见,那为什么要用它们?它们之间有什么区别呢?
首先明确:
 if (likely(value))等价于if (value)
 if (unlikely(value))等价于if (value)

也就是说likely()和unlikely()从阅读和理解的角度是一样的。
这两个宏在内核中定义如下:
<...

by armfighter - 移动操作系统 - 2011-12-20 09:44:06 阅读(595) 回复(0)

本帖最后由 tbag-tang 于 2010-10-23 21:09 编辑 在内核源码中经常出现以下两个宏:likely(x) 和 unlikely(x) 其定义如下: # define likely(x) __builtin_expect(!!(x), 1) # define unlikely(x) __builtin_expect(!!(x), 0) 我先解释下这里的gcc内建函数 __builtin_expect 在/usr/include/gmp-i386.h中有如下说明. /* __builtin_expect is in gcc 3.0, and not in 2.95. */ __builtin_expect(!!(x), 1) ...

by tbag-tang - MaxWit & g-bios - 2010-10-19 21:42:55 阅读(2161) 回复(0)