Linux代码中的unlikely和likely分别是什么意思?

Linux/Unix社区 > 内核源代码研究区 [问题点数:100分,结帖人hudashi]
等级
本版专家分:0
结帖率 93.75%
等级
本版专家分:149
等级
本版专家分:0
等级
本版专家分:149
等级
本版专家分:141
等级
本版专家分:15387
勋章
Blank
签到新秀 累计签到获取,不积跬步,无以至千里,继续坚持!
Blank
红花 2008年12月 Linux/Unix社区大版内专家分月排行榜第一
2008年11月 Linux/Unix社区大版内专家分月排行榜第一
Blank
蓝花 2009年2月 Linux/Unix社区大版内专家分月排行榜第三
2008年10月 Linux/Unix社区大版内专家分月排行榜第三
等级
本版专家分:115
等级
本版专家分:0
Robin Hu

等级:

linux内核中likely和unlikely的含义

在内核代码中经常会看到unlikely和likely的踪影。他们实际上是定义在 linux/compiler.h 的两个宏。  #define likely(x) __builtin_expect(!!(x), )  #define unlikely(x) __builtin_expect(!!(x), 0)  ...

linux内核likely()和unlikely()宏的作用

在看linux内核代码的时候,经常会看到likely(x)和unlikely(x)宏的使用。那这两个宏有什么作用呢? 这两个宏在内核的定义如下: # define likely(x) __builtin_expect(!!(x), 1) # define unlikely(x) __builtin_...

Linux中likely()和unlikely()

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

linux中likely和unlikely

源自:... 在linux中判断语句经常会看到likely和unlikely,例如: if(likely(value)){ } else{ } 简单从表面上看if(likely(value)) == if(value),if(unlikely(value)) == if(val

Linux 内核源码中likely和unlikely

if (likely(value))等价于if (value) ...也就是说likely()和unlikely()从阅读理解的角度是一样的。 这两个宏在内核定义如下:  linuxcompiler  #define likely(x) __builtin_expect(!!(x), 1)  #defi...

linux内核中likelyunlikely

 在linux内核,经常可以看见if( likely(x))或if( unlikely(x))语句,那么likely和unlikely什么意思呢?本文将对likely和unlikely进行一些讨论。 likely和unlikely 参考/include/linux/compiler.h */ # ...

Linux 内核源码中likely()和unlikely()

ikely()与unlikely()在2.6内核,随处可见,那为什么要用它们?它们之间有什么区别呢?首先明确:if (likely(value))等价于if (value)if (likely(a>b)) {fun1();if (unlikely(value))等价于if (value)也就是说...

详解likely和unlikely函数

内核源码:linux-2.6.38.8.tar.bz2  参考文档:...    在Linux内核中likely和unlikely函数有两种(只能两者选一)实现方式,它们的实现原理稍有不同,但作用是相同的,下面将结合linux-2

unlikelylikely的作用

unlikelylikelylinux kernel经常出现。 使用过程需注意: 1. unlikely(x), likely(x)x只能为逻辑表达式(即0或1) 2. 两者的作用都是gcc提供的,用于代码优化 3.likely用于优化x在大多数为真的情况,unlkely...

linux中 likelyunlikely

看内核时总遇到if(likely( )){}或是if(unlikely( ))这样的语句,最初不解其意,现在有所了解,所以也想介绍一下。 likely() 与 unlikely()是内核(我看的是2.6.22.6版本,2.6的版本应该都有)定义的两个宏。...

likely和unlikely函数的含义

看内核时总遇到if(likely( )){}或是if(unlikely( ))这样的语句,最初不解其意,现在有所了解,所以也想介绍一下。 likely() 与 unlikely()是内核(我看的是2.6.22.6版本,2.6的版本应该都有)定义的两个宏。...

likely() && unlikely() && __builtin_expect((x), 1)

Linux2.6内核,看到一对奇怪的函数,likely(), unlikely()。 追踪回去,发现其实是一对宏,如下实现: #define likely(x) __builtin_expect((x), 1) #define unlikely(x) __built

__builtin_expect详解

今天在ndpi的源代码里面,看到了

有关likely和unlikely

原文:http://hi.baidu.com/zjlinus/blog/item/b0f831dd13ac50375882ddac.html 在linux中判断语句经常会看到likely和unlikely,例如: if(likely(value)){ } else{ } 简单从表面上看if(likely(value)) == if(value)...

关于Linux Kernel的宏定义likely和unlikely

Linux kernel的源代码中,经常能见到if(likely(x))或if(unlikely(x))之类的用法,其确切含义需要说明一下,以便更好的理解kernel的源代码likelyunlikely这两个宏在linux/compiler.h的定义如下: #define ...

linux likely and unlikely解析

看内核时总遇到if(likely( )){}或是if(unlikely( ))这样的语句,最初不解其意,现在有所了解,所以也想介绍一下。 likely() 与 unlikely()是内核(我看的是2.6.22.6版本,2.6的版本应该都有)定义的两个宏。...

linux内核likely和unlikely

linux内核likely和unlikelyKernel version:2.6.14CPU architecture:ARM920TAuthor:ce123(http://blog.csdn.net/ce123)GCC version:arm-linux-gcc-3.4.1 看内核时经常遇到if(likely( )){}或是if(unlikely( )...

likely()和unlikely()

define likely(x) __builtin_expect(!!(x), 1) define unlikely(x) __builtin_expect(!!(x), 0) ikely(x)宏传入__builtin_expect(!!(x), 0)的第一个参数为!!x,这样写是因为__builtin_expect的第一个参数需要为long...

linux中likely和unlikely

linux中likely和unlikely0推荐在linux中判断语句经常会看到likely和unlikely,例如:if(likely(value)){}else{}简单从表面上看if(likely(value)) == if(value),if(unlikely(value)) == if(value)。这两个宏对...

关于BUG_ON()的一点笔记

关于BUG_ON()的一点笔记最近在看isp1362的驱动经常看到这个BUG_ON()在网上找了些相关...先看代码吧:#ifndef HAVE_ARCH_BUG#define BUG() do { / printk("BUG: failure at %s:%d/%s()!/n", __FILE__, __LINE__, __func__

驱动程序用到的头文件linux/include/linux/compiler.h(基于linux version:2.6.34; arch:arm)

让我们从一个最简单的驱动程序开始,下面是来自《LINUX设备驱动开发详解》的一个内核模块程序例子: /*====================================================================== A kernel module: book This...

likely && unlikely

likely和unlikely是gcc扩展的跟处理器相关的宏: #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) 现在处理器都是流水线的,有些里面有多个逻辑运算单元,系统...

Linux Likely()/UnLikely() 作用与区别

Likely()/UnLikely() 为 Linux定义的两个宏,

likely()与unlikely()区别

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

Linux内核 fork 源码分析

内核版本:linux-4.4.18 源码位置:这里fork相关的代码最终执行的函数为_do_fork(),下面按照顺序分析下_do_fork(): 首先判断是否需要trace...有关likely和Unlikely,实际上是利用gcc内置函数对分支条件的优化 [2]。

Android系统分析工具(二) ftrace

http://ftrace.svn.sourceforge.net/ ... 可以通过kernel源码的Documentation/trace 目录下的文档以及 kernel/trace 下的源文件以了解其余文件的用途。 在配置linux内核时选择  Kernel hac

内核likely和unlikely宏的使用

在内核代码中经常会看到unlikely和likely的踪影。他们实际上是定义在 linux/compiler.h 的两个宏。 #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) 这里的__...

likely和unlikely的区别

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

ftrace 简介

原文:http://www.ibm.com/developerworks/cn/linux/l-cn-ftrace/ ftrace 的实现 研究 tracer 的实现是非常有乐趣的。理解 ftrace 的实现能够启发我们在自己的系统设计更好的 trace 功能。 ft

Linux内核驱动基础(一)常用宏定义

__init__initdata :仅用于模块初始化,在初始化结束后会丢弃,__init用来描述函数__initdata用来描述数据,比如说当内核启动完毕之后会打印如下语句Freeing unused kernel memory: 664k freed,多半就是__init宏...

相关热词 c# 摘要 c# mvc2 匿名访问 c#qq登录框代码怎么写 c#修改json串 c#string怎么用 c#不包含适用 c# exe 所在路径 c#重载运算符++ add c# list c# 抓取数据