L'azienda Canonical ha pubblicato il risultato della valutazione della modifica delle prestazioni nella ricompilazione dei pacchetti con l'ottimizzazione basata sui risultati del profilo del codice (PGO - Profile-guided optimization), che consente di generare codice più ottimale basato sull'analisi delle caratteristiche di esecuzione del programma. Durante il lavoro svolto, è stato concluso che l'attivazione dell'ottimizzazione PGO ha permesso di ridurre il carico sulla CPU del 5-7% e di accelerare il tempo di compilazione.
Nel corso dell'esperimento condotto, sono state misurate le prestazioni della compilazione dei pacchetti OpenSSL, GDB, Emacs e Python3.12 in un ambiente virtuale QEMU che emula un sistema RISC-V su un computer con architettura x86_64. La differenza di prestazioni è stata valutata per QEMU, compilato con le opzioni predefinite e con l'attivazione dell'ottimizzazione PGO. I pacchetti testati per la compilazione sono stati scelti considerando l'uso di diversi linguaggi di programmazione e un volume di codice corrispondente a 1-6 ore di compilazione nell'emulatore.
Da un punto di vista pratico, l'esperimento ha permesso di ottenere un aumento delle prestazioni degli ambienti di compilazione per la piattaforma RISC-V, eseguiti tramite emulatore. I lavori di compilazione, precedentemente effettuati in una giornata, con l'uso dell'ottimizzazione PGO sono stati completati quasi due ore prima, consentendo di realizzare quotidianamente altre server due compilazioni complete.




Fonte: opennet.ru
