Canonical ha pubblicato i risultati di una valutazione delle modifiche nelle prestazioni durante la ricompilazione dei pacchetti con l'ottimizzazione basata sui risultati del profiling 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, è emerso che l'abilitazione dell'ottimizzazione PGO ha permesso di ridurre il carico sulla CPU del 5-7% e di accelerare il tempo di compilazione.
Durante l'esperimento condotto, sono state misurate le prestazioni di 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 nelle prestazioni è stata valutata per QEMU, compilato con le opzioni predefinite e con l'abilitazione dell'ottimizzazione PGO. I pacchetti testati per la compilazione sono stati scelti in modo che utilizzassero diversi linguaggi di programmazione e il volume di codice corrispondesse a 1-6 ore di compilazione nell'emulatore.
Dal punto di vista pratico, l'esperimento ha permesso di aumentare le prestazioni degli ambienti di compilazione per la piattaforma RISC-V, eseguiti tramite emulatore. I lavori di compilazione, precedentemente completati in un giorno, grazie all'ottimizzazione PGO sono stati eseguiti quasi due ore più velocemente, consentendo di effettuare quotidianamente due server compilazioni complete aggiuntive.




Fonte: opennet.ru
