Canonical hat die Ergebnisse einer Bewertung der Leistungsänderungen bei der Neukompilierung von Paketen mit Aktivierung der Profil-gesteuerten Optimierung (PGO – Profile-guided optimization) veröffentlicht. Diese Optimierung ermöglicht die Generierung effizienteren Codes basierend auf der Analyse der Ausführungsmerkmale des Programms. Bei der durchgeführten Arbeit wurde festgestellt, dass die Aktivierung der PGO-Optimierung die CPU-Auslastung um 5-7 % senken und die Kompilierzeit beschleunigen konnte.
Im Rahmen des durchgeführten Experiments wurde die Leistung der Paketkompilierung für OpenSSL, GDB, Emacs und Python3.12 in einer virtuellen Umgebung mit QEMU, das ein RISC-V-System auf einem x86_64-Computer emuliert, gemessen. Der Leistungsunterschied wurde für QEMU bewertet, das mit den Standardoptionen und mit aktivierter PGO-Optimierung kompiliert wurde. Die zu kompilierenden Pakete wurden so ausgewählt, dass sie verschiedene Programmiersprachen verwenden und der Codeumfang 1-6 Stunden Kompilierzeit im Emulator entspricht.
Aus praktischer Sicht ermöglichte das Experiment eine Leistungssteigerung der Build-Umgebungen für die RISC-V-Plattform, die durch einen Emulator gestartet werden. Build-Prozesse, die zuvor einen Tag in Anspruch nahmen, konnten durch den Einsatz der PGO-Optimierung fast zwei Stunden schneller abgeschlossen werden, was die Möglichkeit eröffnete, täglich zwei zusätzliche vollständige Builds durchzuführen. Server zwei zusätzliche vollständige Builds.




Quelle: opennet.ru
