인라인 확장
From Wikipedia, the free encyclopedia
컴퓨팅에서 인라인 확장(inline expansion) 또는 인라이닝(inlining)은 함수를 함수라는 이름의 몸체의 콜 사이트로 대체하는 수동 또는 컴파일러 최적화 기법이다. 인라인 확장은 매크로 확장과 비슷하지만 소스 코드의 변경 없이 컴파일 중에 발생하는 반면, 매크로 확장은 컴파일 전에 발생하며 컴파일러에 의해 처리되는 텍스트 결과물이 다르다.
인라이닝은 중요한 최적화이지만 성능에 복잡한 효력을 발휘한다.[1] 경험 법칙에 의거하여 일부 인라이닝은 매우 사소한 공간적 비용으로 속도를 개선시키지만 과도한 인라이닝은 인라인된 코드에 의해 함수 캐시를 상당 부분 소비하기 때문에 속도가 감소되며 상당한 공간 비용이 발생한다. 인라인에 관한 한정된 학술 논문 조사는 Jones & Marlow 1999를 통해 이루어졌다.[2]