分支优化选择——likely()、unlikely()

分支优化选择
对于条件选择语句,gcc内建了一条指令用于优化,在一个条件经常出现,或者该条件很少出现的时候,编译器可以根据这条指令对条件分支选择进行优化。内核把这条指令封装成了宏,比如likely()和unlikely()。

使用示例:

先存在如下条件选择语句:
if(error){
	.....
}

如果这个标记大多数为0,可以使用unlikely(error)
if(unlikely(error)){
	......
}

如果,分支条件大多数为满足时,可以使用likely(success)
if(likely(success)){
	......
}

【注】在使用之前,一定要清楚是不是存在一个在绝大多数情况下都会成立的条件。如果,判断正确,这个条件占压倒性的优势,性能会得到提升;如果搞错了,性能反而会下降。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值