링크 타임 최적화(Link Time Optimization, LTO)는 여러 번역 단위에 걸쳐 수행되는 컴파일러 변환의 모음입니다. 이는 IPO(프로시저 간 최적화)라고도 자주 불립니다. 전통적으로 컴파일러는 하나의 번역 단위 안에서 최적화를 수행합니다. LTO는 많은 함수 호출이 번역 단위 경계를 넘나드는 상황에서 큰 도움이 됩니다. 이 실습에서는 LTO의 효과를 실제로 확인하게 됩니다.

이 연습에 권장하는 작업 순서는 다음과 같습니다.

  1. 벤치마크를 프로파일링하고 병목 지점을 살펴보십시오.
  2. LTO를 사용하지 않고 코드를 직접 개선해 보십시오.
  3. 변경 사항을 되돌리고 대신 LTO(컴파일러 옵션)를 활성화하십시오.
  4. 프로파일을 다시 확인하여 컴파일러가 어떤 변경을 수행했기에 성능 속도 향상으로 이어졌는지 알아보십시오.

AOBench

이 실습의 코드는 Syoyo Fujita가 처음 작성한 aobench에서 가져왔습니다: https://code.google.com/archive/p/aobench/

라이선스: New BSD License

Performance Ninja를 위한 수정 사항:

Co-authored-by: @dendibakh