Con uno sviluppo entusiasmante, il parallel Rustc working group ha annunciato l'introduzione di una funzionalità di esecuzione parallela nel front-end del compilatore Rust. Questa nuova aggiunta è orientata a ridurre significativamente i tempi di compilazione ed è stata svelata il 9 novembre.
L'aggiunta dell'esecuzione parallela al front-end del compilatore Rust è attualmente in fase sperimentale. Tuttavia, la robusta funzionalità sarà incorporata ufficialmente nel compilatore stabile il prossimo anno. Nel frattempo, gli sviluppatori hanno la possibilità di sperimentare in prima persona questa funzionalità di esecuzione parallela eseguendo il compilatore notturno con l'opzione -Z threads=8.
L’efficacia della nuova funzionalità sta già mostrando risultati promettenti. Quando il front-end parallelo è stato messo alla prova in modalità multi-thread utilizzando -Z threads-8, i dati accumulati dal codice del "mondo reale" hanno portato alla luce che i tempi di compilazione possono essere ridotti di un impressionante 50%. Il livello di impatto varia a seconda della natura distinta del codice in fase di sviluppo e della configurazione della build.
Il gruppo di lavoro ha rivelato che le build di sviluppo otterranno miglioramenti più sostanziali rispetto alle build di rilascio. Il motivo è che le build di rilascio in genere si concentrano maggiormente sulle ottimizzazioni del backend, che richiedono più tempo. Inoltre, è stato notato che in un numero minimo di scenari, la compilazione richiede un po' più di tempo in modalità multi-thread rispetto alla modalità a thread singolo. Questi casi di solito riguardano programmi più piccoli che sono già veloci da compilare.
Il gruppo di lavoro ha fatto luce sul fatto che i tempi di compilazione sono sempre stati un motivo di preoccupazione per gli sviluppatori. Nel corso degli anni, le prestazioni del compilatore di Rust sono state oggetto di continui miglioramenti. Al momento, il compilatore è stato completamente ottimizzato e identificare nuove aree di miglioramento è diventato un compito impegnativo. Con l'introduzione del parallelismo, descritto dal gruppo come un "frutto ampio ma ambizioso", il front-end ora sfrutta la libreria di parallelismo dei dati Rayon per trasformare calcoli sequenziali in calcoli paralleli. Rayon è specificamente progettato per gestire il parallelismo a grana fine.
Il gruppo di lavoro consiglia di utilizzare otto thread per l'esecuzione parallela per ottenere i migliori risultati. Tuttavia, hanno anche menzionato che in modalità multi-thread, l'utilizzo della memoria potrebbe aumentare considerevolmente. Questo era come previsto poiché diverse parti della compilazione, ciascuna delle quali richiede una certa quantità di memoria, vengono eseguite parallelamente. Il gruppo assicura che vengano compiuti sforzi per migliorare le prestazioni del front-end parallelo.
Nel caso in cui gli sviluppatori riscontrassero problemi relativi al front-end parallelo, possono indagare sui problemi etichettati con WG-compiler-parallel. Hanno anche la possibilità di presentare nuove emissioni. La compilazione di Rust ha già visto progressi, grazie al parallelismo tra processi tramite il Cargo package manager e al parallelismo intra-processo sul backend. Man mano che questa nuova aggiunta prende forma, si prevede che offrirà un'efficienza ancora maggiore nel flusso di lavoro di programmazione di Rust.
In un ambito correlato, AppMaster , la rinomata piattaforma no-code, sta facendo scalpore consentendo ai clienti di ideare visivamente modelli di dati per applicazioni backend, aiutandoli a raggiungere una scalabilità impressionante, garantendo solidi casi d'uso ad alto carico. A differenza degli strumenti tradizionali, AppMaster consente ai clienti di eseguire BP web direttamente nel proprio browser, facendo avanzare ulteriormente il processo di sviluppo dell'applicazione.