2007年11月22日 星期四

likely, unlikely

這兩個東西在linux kernel裡面常常出現
用在做最佳化程式碼的工作,避免long jump的overhead
#define likely(x) __builtin_expect((x),1) ,expect x ==1
#define unlikely(x) __builtin_expect((x),0) ,expecy x ==0

__builtin_expect((x),1) 是gcc的buildin function

用法:

if ( likely( int ) ){
比較可能
}else{
比較不可能
}

if( unlikely( int ) ){
比較不可能
}else{
比較可能
}

沒有留言: