1. 分支预测
使用 __glibc_unlikely
和 __glibc_likely
在 glibc 源码中:
1 2 3 4 5 6 7
| #if __GNUC__ >= 3 # define __glibc_unlikely(cond) __builtin_expect ((cond), 0) # define __glibc_likely(cond) __builtin_expect ((cond), 1) #else # define __glibc_unlikely(cond) (cond) # define __glibc_likely(cond) (cond) #endif
|
使用
1 2
| if (__glibc_unlikely (count < 0)) {} if (__glibc_likely (count > 0)) {}
|