美文网首页
__builtin_expect

__builtin_expect

作者: Z_JaDe | 来源:发表于2019-04-28 19:42 被阅读0次

__builtin_expect(EXP, N)。意思是:EXP==N的概率很大

这个指令是gcc引入的,作用是"允许程序员将最有可能执行的分支告诉编译器";

GCD中

#define fastpath(x) ((typeof(x))__builtin_expect((long)(x), ~0l))

#define slowpath(x) ((typeof(x))__builtin_expect((long)(x), 0l))

fastpath说明条件很可能为真;

slowpath说明条件很可能为假;

#define likely(x) __builtin_expect(!!(x), 1)

#define unlikely(x) __builtin_expect(!!(x), 0)

likely说明条件很可能为真;

unlikely说明条件很可能为假;

CPU会根据__builtin_expect指令优化,尽最大可能的减少跳转指令的发生。

相关文章

  • jemalloc 之 拾人牙慧

    一、__builtin_expect __builtin_expect 提供分支预测功能,参看这里。likely ...

  • __builtin_expect

    define likely(x) __builtin_expect(!!(x),1) define unlikel...

  • __builtin_expect

    __builtin_expect(EXP, N)。意思是:EXP==N的概率很大 这个指令是gcc引入的,作用是"...

  • GCC关键字

    __builtin_expect: __thread: 参考文献: __thread 关键字 - 简书 (jian...

  • __builtin_expect 总结

    今天看GCD 源码,有个宏定义中有 __builtin_expect命令 这个命令干么的呢? 这个指令是gcc引入...

  • __builtin_expect讲解

    5月20号之前完成

  • __builtin_expect 说明

    这个指令是gcc引入的,作用是允许程序员将最有可能执行的分支告诉编译器。这个指令的写法为:__builtin_ex...

  • 关于__builtin_expect

    先上代码 再上输出结果 结论 1 __builtin_expect是gcc提供的,目的是为了优化代码2 __bui...

  • alloc的分析

    __builtin_expect(exp, n) 方法表示 exp 很有可能为 0,返回值为 exp。你可以将 f...

  • cpp

    参考: Linux下动态链接库的使用 CMake GCC __builtin_expect的作用 C++中的单例模...

网友评论

      本文标题:__builtin_expect

      本文链接:https://www.haomeiwen.com/subject/punjnqtx.html