gcc 分支预测
来源:互联网 发布:java基本功编程题 编辑:程序博客网 时间:2024/04/30 21:36
> #if defined __GNUC__> #define likely(x) __builtin_expect (!!(x), 1)> #define unlikely(x) __builtin_expect (!!(x), 0)> #else> #define likely(x) (x)> #define unlikely(x) (x)
unlikely表示不期望发生,likely表示期望发生,__builtin_expect(x,y) 会告诉编译器大多数情况下x==y相等,你也许会更喜欢使用 gcc 的一个参数 ‘-fprofile-arcs’ 来收集程序运行的关于执行流程和分支走向的实际反馈信息,如果这样写
int function(int x){ int m=0; if(unlikely(x)){ m = 10; //1 }else{ m=200; //2 }}
cpu会优先加载else(2)的部分,来提高cpu分支预测的准确性
0 0
- gcc 分支预测
- GCC——分支预测(likely和unlikey)
- 分支预测
- 分支预测
- 分支预测
- 分支指令预测技术
- 分支指令预测技术
- 分支指令预测技术
- 分支预测(Branch Prediction)
- 什么是分支预测?
- 什么是分支预测?
- 分支预测(Branch Prediction)
- SimpleScalar动态分支预测
- 有意思的分支预测
- 分支预测器设计
- if-else 分支预测
- 分支预测(Branch Prediction)
- 利用分支预测优化代码
- Explanation of some words(ENG -> CHN)
- Java基础复习(五)
- sizeof( )与strlen( )测数组的差异分析
- JAVA类加载器
- 每天一个Linux命令(10):cat
- gcc 分支预测
- 算法训练之暴力枚举
- 王垠《清华梦破碎》沉思与反省
- 第三章 多态
- es6学习--数组的扩展
- 94. Binary Tree Inorder Traversal
- JAVA接口总结
- 浅析Python的闭包和延迟绑定
- 一个很无耻的Java面试题