当前位置: 首页 > news >正文

湖南网站营销seo哪家好关于电子工程的学术论坛

湖南网站营销seo哪家好,关于电子工程的学术论坛,建设旅游网站缺点,广西兴业县建设局网站文章目录 GCC likely与unlikely 介绍linux 内核中的 likely/unlikely 上篇文章#xff1a;ARM 嵌入式 编译系列 4 – GCC 编译属性 __read_mostly 介绍 下篇文章: ARM 嵌入式 编译系列 4.2 – GCC 链接规范 extern “C“ 介绍 GCC likely与unlikely 介绍 likely 和 unlikely … 文章目录 GCC likely与unlikely 介绍linux 内核中的 likely/unlikely 上篇文章ARM 嵌入式 编译系列 4 – GCC 编译属性 __read_mostly 介绍 下篇文章: ARM 嵌入式 编译系列 4.2 – GCC 链接规范 extern “C“ 介绍 GCC likely与unlikely 介绍 likely 和 unlikely 是GCC编译器提供的一种代码优化特性这两个宏用于告诉编译器某个条件判断的结果是真还是假的可能性更大。 在编写代码时如果我们已经知道某个条件判断的结果大部分情况下都是真或者假就可以使用likely和unlikely宏来进行标记编译器会根据这个提示进行优化使得代码运行更高效。 以下是这两个宏的定义 #define likely(x) __builtin_expect((x), 1) #define unlikely(x) __builtin_expect((x), 0)这里的__builtin_expect 是 GCC的内建函数用于提供编译器关于表达式结果的预期值。 以下是如何在代码中使用这两个宏的 if (likely(x 0)) {// 大部分情况下x都大于0 } else { // 一般情况下这里的代码不会执行 } if (unlikely(err ! 0)) {// 一般情况下err都等于0所以这里的代码很少执行 }在这两个示例中likely和unlikely宏标记了条件判断的结果预期这样编译器在生成机器代码时可以将更可能执行的代码放在内存中的靠前位置从而提高代码执行效率。 linux 内核中的 likely/unlikely 这两个宏在内核中的定义如下 # 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可以同时完成下一条指令的取指这样可以提高CPU的利用率。在执行条件分支指令时CPU也会预取下一条执行但是如果条件分支的结果为跳转到了其他指令那 CPU 预取的下一条指令就没用了这样就降低了流水线的效率。 另外跳转指令相对于顺序执行的指令会多消耗 CPU 时间如果可以尽可能不执行跳转也可以提高 CPU 性能。 使用 __builtin_expect (long exp, long c) 函数可以帮助 gcc 优化程序编译后的指令序列使汇编指令尽可能的顺序执行从而提高 CPU 预取指令的正确率和执行效率。 __builtin_expect(exp, c) 接受两个 long 型的参数用来告诉 gccexpc 的可能性比较大。 例如__builtin_expect(exp, 1) 表示程序执行过程中exp 取到 1 的可能性比较大。该函数的返回值为 exp 自身。 内核中 likely(x) 和 unlikely(x) 宏 知道 __builtin_expect() 函数的作用之后我们就知道内核中 likely(x) 和 unlikely(x) 宏的作用了通过 likely(x) 和 unlikely(x) 宏定义我们可以得出他们的作用 likely(x) 等价于 x即 if (likely(x)) 等价于 if (x)但是它告诉 gccx 取 1 的可能性比较大;unlikely(x) 等价于 x即 if (unlikely(x))等 价于 if (x)但是它告诉 gccx 取 0 的可能性比较大。 上篇文章ARM 嵌入式 编译系列 4 – GCC 编译属性 __read_mostly 介绍 下篇文章: ARM 嵌入式 编译系列 4.2 – GCC 链接规范 extern “C“ 介绍
http://www.w-s-a.com/news/23874/

相关文章:

  • 个人承接网站建设wordpress editor
  • 建站主机 wordpress专业的菏泽网站建设公司
  • 网站响应时间 标准网站建设色调的
  • 网站开发的合同网站建设 设计
  • 网站开发设置网页端口申请免费个人网站空间
  • 制作广告网站的步骤云服务器做网站
  • ipv6可以做网站吗东莞网站建站推广
  • 注册功能的网站怎么做做网站容易还是编程容易
  • wordpress建立目录seo编辑培训
  • 网站怎么群发广州现在可以正常出入吗
  • 微信有网站开发吗多语种网站
  • 深圳网站设计 建设首选深圳市室内设计公司排名前50
  • 上海网站建设 觉策动力wordpress接口开发
  • 网站建设服务器的选择方案小型视频网站建设
  • 江宁做网站价格扬州立扬计算机培训网站建设怎么样
  • 手表网站背景开发新客户的十大渠道
  • 定制网站设计wordpress写的网站
  • p2p网站建设公司排名成都装饰公司
  • 网站被k怎么恢复wordpress缓存类
  • 做外贸有哪些网站平台最近文章 wordpress
  • joomla网站模板一个人做网站的swot
  • 南京建设网站需要多少钱深圳专业网站建设制作价格
  • 天河建网站装修公司线上推广方式
  • 超市网站怎么做的目前最流行的拓客方法
  • 做文字logo的网站贵阳商城网站开发
  • 沧州有没有做网站的中国建筑设计
  • 建设网站 系统占用空间在线代理浏览网站
  • 做海报有什么参考的网站网站建设验收合同
  • 酒店网站制作wordpress文章评论设置
  • 造一个官方网站wordpress mysql类