때때로 컴파일러는 함수 호출을 인라인합니다. 즉, 호출 된 함수의 코드를 호출 함수로 이동합니다. 이렇게하면 통화 스택에서 물건을 밀거나 뺄 필요가 없기 때문에 약간 더 빨라집니다.
내 질문은, 왜 컴파일러가 모든 것을 인라인하지 않습니까? 실행 파일이 훨씬 빠르다고 가정합니다.
내가 생각할 수있는 유일한 이유는 상당히 큰 실행 파일이지만 요즘에는 수백 GB의 메모리가 중요합니까? 개선 된 성능이 가치가 없습니까?
컴파일러가 모든 함수 호출을 인라인하지 않는 다른 이유가 있습니까?
Isn't the improved performance worth it?
루프를 100 번 실행하고 심각한 숫자를 처리하는 방법의 경우 2 개 또는 3 개의 인수를 CPU 레지스터로 이동하는 오버 헤드는 없습니다.