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

建站之星模块网络推广有哪些常见的推广方法

建站之星模块,网络推广有哪些常见的推广方法,wordpress获取分类url,软件测试工程师就是个坑文章目录 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 介绍
      • linux 内核中的 likely/unlikely

上篇文章:ARM 嵌入式 编译系列 4 – GCC 编译属性 __read_mostly 介绍
下篇文章: ARM 嵌入式 编译系列 4.2 – GCC 链接规范 extern “C“ 介绍

GCC likely与unlikely 介绍

likelyunlikely 是GCC编译器提供的一种代码优化特性,这两个宏用于告诉编译器某个条件判断的结果是真还是假的可能性更大。

在编写代码时,如果我们已经知道某个条件判断的结果大部分情况下都是真或者假,就可以使用likelyunlikely宏来进行标记,编译器会根据这个提示进行优化,使得代码运行更高效。

以下是这两个宏的定义:

#define likely(x) __builtin_expect((x), 1) 
#define unlikely(x) __builtin_expect((x), 0)

这里的__builtin_expectGCC的内建函数,用于提供编译器关于表达式结果的预期值。

以下是如何在代码中使用这两个宏的:

if (likely(x > 0)) {// 大部分情况下,x都大于0 
} else { // 一般情况下,这里的代码不会执行 
} if (unlikely(err != 0)) {// 一般情况下,err都等于0,所以这里的代码很少执行 
}

在这两个示例中,likelyunlikely宏标记了条件判断的结果预期,这样编译器在生成机器代码时,可以将更可能执行的代码放在内存中的靠前位置,从而提高代码执行效率。

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 型的参数,用来告诉 gcc:exp==c 的可能性比较大。
例如,__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),但是它告诉 gcc,x 取 1 的可能性比较大;
  • unlikely(x) 等价于 x,即 if (unlikely(x))等 价于 if (x),但是它告诉 gcc,x 取 0 的可能性比较大。

上篇文章:ARM 嵌入式 编译系列 4 – GCC 编译属性 __read_mostly 介绍
下篇文章: ARM 嵌入式 编译系列 4.2 – GCC 链接规范 extern “C“ 介绍

http://www.dt0577.cn/news/137.html

相关文章:

  • 做翻译赚钱的网站win7系统优化软件
  • 什么公司做的网站好新闻今天的最新新闻
  • bootstrap微网站模板下载引流推广网站
  • 自己做网站怎么别人怎么浏览电话销售怎么找客户渠道
  • 广州网站建设推广报价江苏营销型网站建设
  • 中国各省旅游网站建设分析百度广告费用
  • 简历上作品展示网站链接怎么做网站自动推广软件免费
  • wordpress 企业网站制作google关键词指数
  • 如何设计出一个好网站教育培训机构官网
  • 如何做一个论坛网站雏鸟app网站推广
  • 视频教学网站cms武汉网站推广
  • 南京华典建设有限公司网站鹤壁seo公司
  • 实训课建设网站步骤优化大师最新版本
  • pc网站同步手机网站seo排名优化公司
  • 网站迁移教程网络推广哪个平台好
  • 商务网站建设中的必备功能培训体系搭建
  • 做外贸到什么网站上发布比较好企业宣传软文
  • 网站全能空间网站seo优化运营
  • 当牛做吗网站源代码分享百度云地推网app推广平台
  • 温州市城建设计院网站平面设计正规培训机构
  • 庞各庄网站建设网站怎么添加外链
  • 自己建设网站平台步骤百度站长统计
  • 电子商务网站建设是学什么软件新冠疫情最新数据
  • 广州建站苏州网站建设方案
  • 店铺logo图片免费生成器兰州网站seo服务
  • 合肥做网站的企业seo网络优化是做什么的
  • 浅析我国门户网站建设不足国外seo工具
  • 做淘宝客没网站怎么做电商网站平台有哪些
  • 建设银行面试通知网站惠州seo计费管理
  • 注册域名能干什么百度seo咋做