본문 바로가기

프로그래밍

__builtin_expect

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

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

 

성능을 향상시키기 위해 예측 가능한 결과에 대해서 컴파일러에 알려줘 CPU가 더 효율적으로 명령어를 fetch할 수 있도록 한다.

  • likely()는 true가 될 확률이 높은 조건문에서 사용하여 성능을 높이고자 사용한다.
  • unlikely()는 false가 될 확률이 높은 조건문에서 사용하여 성능을 높이고자 사용한다.

참고 링크 : http://jake.dothome.co.kr/likely/ , http://minjang.egloos.com/561972