인라인함수 따져보기(effective c++ 30)
2015. 9. 4. 21:32ㆍ프로그래밍/Effective C++
728x90
728x90
인라인 함수
장점
함수처럼 보이고 함수처럼 동작하는데다가 훨씬 안전하고 쓰기 좋다.
함수 호출 시 발생하는 오버헤드도 걱정할 필요가 없다.
숨겨진 이점
함수 호출 비용이 면제되는 것은 눈에 보이는 부분에 불과하다.
인라인 함수를 사용하면 컴파일러가 함수 본문에 대해 문맥별(context-specifc) 최적화를 걸기가 용이해진다.
단점
인라인 함수로 인해 부풀려진 코드는 성능의 걸림돌이 되기 쉽다.
페이징 횟수가 늘어나고 명령어 캐시 적중률이 떨어질 가능성도 높아진다.
컴파일러
잘 알다시피 인라인 키워드를 붙인다 하더라도 컴파일러가 판단하여 인라인을 하여 성능이 좋아진다면
인라인할 것이고 그게 아니라면 인라인을 하지 않는다.
생성자/소멸자
생성자와 소멸자는 인라인하기에 그리 좋지 않은 함수이다.
생성자와 소멸자는 내부에서 처리하는 것이 있기 때문에 인라인을 하기엔 좋지 않다.
결론
- 인라인 함수는 작고 자주 호출되는 함수에 대해서만 합시다.
- 정말 간단한 함수 외에는 설계할 때 인라인으로 하지 맙시다.
사족
이번 항목의 제목에 '미주알고주알'이란 단어가 나온다.
그래서 찾아봤다 이놈의 미주알고주알이 뭔지.
원본은 네이버 사전!
부사
아주 사소한 일까지 속속들이. [비슷한 말] 고주알미주알.
- 털이가 안 된다는 까닭을 미주알고주알 캐내서 수다 늘어놓는데 주만은 참다 못하여 소리를 빽질렀다. 출처 : 현진건, 무영탑
- 그러나 노파는 더욱 바싹 다가들며 요모조모 살피듯이 미주알고주알 캐어물었다. 출처 : 이호철, 소시민
관련 규범 해설
‘미주알고주알’의 의미로 ‘메주왈^고주왈, 메주왈고주왈, 미주리고주리’를 쓰는 경우가 있으나 ‘미주알고주알’만 표준어로 삼는다.
관련조항 : 표준어 규정 2장 4절 17항, 표준어 규정 3장 4절 25항속담/관용구
속담
- 미주알고주알 밑두리콧두리 캔다
- 미주알고주알 캔다
728x90
반응형
'프로그래밍 > Effective C++' 카테고리의 다른 글
예외 안정성 확보(effective C++ 29) (0) | 2015.09.04 |
---|---|
내부에서 사용하는 객체의 핸들을 반환하는 코드는 NO(effective c++ 28) (0) | 2015.09.04 |
캐스팅 절약(effective c++ 27) (0) | 2015.09.04 |
변수 정의 최대한 늦추기(effective c++ 26) (0) | 2015.08.25 |
예외를 던지지않는 swap(effective c++ 25) (0) | 2015.08.25 |
타입변환이 모든 매개변수에 적용된다면? 그 함수는 비멤버로(effective c++ 24) (0) | 2015.08.25 |
멤버 함수보단 비멤버 비프렌드 함수를!(effective c++ 23) (0) | 2015.08.25 |