Firma Canonical opublikowała wyniki oceny zmian wydajności podczas rekompilacji pakietów z włączeniem optymalizacji na podstawie wyników profilowania kodu (PGO — optymalizacja guidowana profilowaniem), która pozwala generować bardziej optymalny kod w oparciu o analizę cech wykonania programu. W trakcie przeprowadzonych prac stwierdzono, że włączenie optymalizacji PGO pozwoliło na obniżenie obciążenia procesora o 5-7% i przyspieszenie czasu kompilacji.
W trakcie przeprowadzonego eksperymentu zmierzono wydajność kompilacji pakietów OpenSSL, GDB, Emacs i Python3.12 w wirtualnym środowisku QEMU, emulującym system RISC-V na komputerze z architekturą x86_64. Różnicę wydajności oceniano dla QEMU skompilowanego z domyślnymi opcjami oraz z włączoną optymalizacją PGO. Testowane pakiety do kompilacji zostały wybrane z uwzględnieniem, że wykorzystują różne języki programowania, a objętość kodu odpowiada 1-6 godzinom kompilacji w emulatorze.
Z praktycznego punktu widzenia eksperyment pozwolił na osiągnięcie wzrostu wydajności środowisk kompilacyjnych dla platformy RISC-V, uruchamianych za pomocą emulatora. Prace kompilacyjne, które wcześniej zajmowały jeden dzień, przy wykorzystaniu optymalizacji PGO zaczęły być realizowane prawie o dwie godziny szybciej, co umożliwiło codzienne wytwarzanie dodatkowych serwerze dwu pełnych kompilacji.




Źródło: opennet.ru
