Link-Time Optimization (LTO): Die nächste Stufe der Compileroptimierung?
Dieser Artikel untersucht Link-Time Optimization (LTO), eine Technik, die die Programmleistung verbessert, indem sie Optimierungen während der Linkphase durchführt. Traditionelle Compiler optimieren innerhalb einzelner Dateien, während LTO umfassendere optimierungen über mehrere Dateien hinweg ermöglicht, wie z. B. das Inlining von Funktionen und die Verbesserung der Codelokalität. Obwohl LTO zu signifikanten Leistungsverbesserungen führen kann (z. B. eine Reduzierung der Laufzeit um 9,2 % und eine Reduzierung der Binärdateigröße um 20 % im Test des ProjectX-Projekts), erfordert es auch längere Kompilierungs- und Verknüpfungszeiten und mehr Arbeitsspeicher. Der Autor vergleicht Experimente an ProjectX und ffmpeg, um die Vor- und Nachteile von LTO zu veranschaulichen, und schlägt vor, LTO bei Projekten zu testen, die nicht aggressiv auf Geschwindigkeit optimiert wurden, und kommt zu dem Schluss, dass die letztendlichen Leistungsgewinne vom jeweiligen Projekt abhängen.