인라인함수 따져보기(effective c++ 30)

2015. 9. 4. 21:32프로그래밍/Effective C++

728x90
728x90

인라인 함수

장점

함수처럼 보이고 함수처럼 동작하는데다가 훨씬 안전하고 쓰기 좋다.

함수 호출 시 발생하는 오버헤드도 걱정할 필요가 없다.


숨겨진 이점

함수 호출 비용이 면제되는 것은 눈에 보이는 부분에 불과하다.  

인라인 함수를 사용하면 컴파일러가 함수 본문에 대해 문맥별(context-specifc) 최적화를 걸기가 용이해진다.


단점

인라인 함수로 인해 부풀려진 코드는 성능의 걸림돌이 되기 쉽다.

페이징 횟수가 늘어나고 명령어 캐시 적중률이 떨어질 가능성도 높아진다.


컴파일러

잘 알다시피 인라인 키워드를 붙인다 하더라도 컴파일러가 판단하여 인라인을 하여 성능이 좋아진다면 

인라인할 것이고 그게 아니라면 인라인을 하지 않는다.


생성자/소멸자

생성자와 소멸자는 인라인하기에 그리 좋지 않은 함수이다.

생성자와 소멸자는 내부에서 처리하는 것이 있기 때문에 인라인을 하기엔 좋지 않다.


결론

- 인라인 함수는 작고 자주 호출되는 함수에 대해서만 합시다.

- 정말 간단한 함수 외에는 설계할 때 인라인으로 하지 맙시다.






사족

이번 항목의 제목에 '미주알고주알'이란 단어가 나온다.
그래서 찾아봤다 이놈의 미주알고주알이 뭔지.
원본은 네이버 사전!

부사

아주 사소한 까지 속속들이[비슷한 말] 고주알미주알.

관련 규범 해설

‘미주알고주알’의 의미로 ‘메주왈^고주왈, 메주왈고주왈, 미주리고주리’를 쓰는 경우가 있으나 ‘미주알고주알’만 표준어로 삼는다. 

관련조항 : 표준어 규정 2장 4절 17항표준어 규정 3장 4절 25항

속담/관용구

속담
미주알고주알 밑두리콧두리 캔다
일의 속사정을 속속들이 자세히 알아보는 경우를 비유적으로 이르는 말.
[비슷한 속담] 미주알고주알 캔다.
    미주알고주알 캔다
    [같은 속담] 미주알고주알 밑두리콧두리 캔다.


    728x90
    반응형