인라인은 작은 함수에만 조심스럽게 붙인다
키워드를 붙일지보다, 펼쳤을 때 호출 비용은 줄고 코드 크기 증가는 작을지를 먼저 판단합니다.
| 상황 | 판정 | 이유 |
|---|---|---|
| 한두 줄 계산 함수 | 좋음 | 복사 비용이 낮고 호출 오버헤드 제거 효과가 있습니다. |
| 루프 안에서 자주 호출 | 검토 | 작은 함수라면 누적 호출 비용을 줄일 수 있습니다. |
| 큰 함수나 복잡한 제어 흐름 | 피함 | 코드가 여러 곳에 복사되어 크기와 캐시 비용이 커집니다. |
| 재귀 함수 | 부적합 | 자기 자신을 계속 펼칠 수 없어 실질적 이득이 작습니다. |
| 함수 포인터 호출 | 어려움 | 호출 대상이 런타임에 정해지면 컴파일 시점에 펼치기 어렵습니다. |
핵심:
inline은 구조를 바꾸는 도구가 아니라 작은 함수의 호출 비용을 줄일 수 있는 최적화 힌트입니다.