likely
-
likely, unlikely 함수란?IT/Linux Kernel 2012. 1. 6.
리눅스 커널코드를 보면, likely와 unlikely란 함수를 종종 발견하곤 한다. 컴파일러는 작성된 함수와 코드들에 대해서 최적화 작업을 하여 성능을 향상시킨다. 여기서 갑자기 컴파일러 이야기를 하는 이유는 해당 함수들(정확히 말하자면 매크로이긴 합니다만)은 컴파일러와 관련이 있다. likely와 unlikely는 if 분기문에서 likely를 주면 컴파일러에게 해당 분기문에서 참인 경우가 더 많을 것이라는 정보를 주어 성능을 추가적으로 성능시키는 함수이다. 반대로 if 분기문 안에 unlikely를 주면 거짓인 경우가 더 많을 것이라는 정보를 준다. 실제로 정의된 매크로를 따라가면 __builtin_expect라는 함수가 사용됨을 볼 수 있다. __builtin_expect라는 이름이 좀 더 실제 ..