SE VUOI PRENDERE LA CERTIFICAZIONE PER QUESTO CORSO CLICCA QUI
Personalizzazione delle Build con Profili di Rilascio
In Rust, i profili di rilascio sono profili predefiniti e personalizzabili con diverse configurazioni che consentono a un programmatore di avere più controllo su varie opzioni per la compilazione del codice. Ogni profilo è configurato indipendentemente dagli altri.
Cargo ha due profili principali: il profilo dev che Cargo utilizza quando esegui cargo build e il profilo di rilascio che Cargo utilizza quando esegui cargo build –release. Il profilo dev è definito con buone impostazioni predefinite per lo sviluppo, mentre il profilo di rilascio ha buone impostazioni predefinite per le build di rilascio.
Questi nomi di profilo potrebbero essere familiari dall’output delle tue build:
scss
$ cargo build
Finished dev [unoptimized + debuginfo] target(s) in 0.0s
$ cargo build --release
Finished release [optimized] target(s) in 0.0s
Il dev e il rilascio sono questi diversi profili utilizzati dal compilatore.
Cargo ha impostazioni predefinite per ciascuno dei profili che si applicano quando non hai aggiunto esplicitamente alcuna sezione [profile.] nel file Cargo.toml del progetto. Aggiungendo sezioni [profile.] per qualsiasi profilo si desideri personalizzare, si sovrascrivono tutte le impostazioni predefinite o una loro parte. Ad esempio, ecco i valori predefiniti per l’impostazione opt-level per i profili dev e rilascio:
toml
[profile.dev]
opt-level = 0
[profile.release]
opt-level = 3
L’impostazione opt-level controlla il numero di ottimizzazioni che Rust applicherà al tuo codice, con un intervallo da 0 a 3. Applicare più ottimizzazioni estende il tempo di compilazione, quindi se sei in fase di sviluppo e compili il tuo codice spesso, vorrai meno ottimizzazioni per compilare più velocemente anche se il codice risultante viene eseguito più lentamente. Pertanto, l’opt-level predefinito per dev è 0. Quando sei pronto per rilasciare il tuo codice, è meglio dedicare più tempo alla compilazione. Compili solo in modalità di rilascio una volta, ma eseguirai il programma compilato molte volte, quindi la modalità di rilascio scambia un tempo di compilazione più lungo per un codice che viene eseguito più velocemente. Ecco perché l’opt-level predefinito per il profilo di rilascio è 3.
Puoi sovrascrivere un’impostazione predefinita aggiungendo un valore diverso per essa in Cargo.toml. Ad esempio, se vogliamo utilizzare il livello di ottimizzazione 1 nel profilo di sviluppo, possiamo aggiungere queste due righe al file Cargo.toml del nostro progetto:
toml
[profile.dev]
opt-level = 1
Questo codice sovrascrive l’impostazione predefinita di 0. Ora, quando eseguiamo cargo build, Cargo utilizzerà le impostazioni predefinite per il profilo dev più la nostra personalizzazione per opt-level. Poiché abbiamo impostato opt-level su 1, Cargo applicherà più ottimizzazioni rispetto al predefinito, ma non così tante quanto in una build di rilascio.
Per l’elenco completo delle opzioni di configurazione e dei valori predefiniti per ciascun profilo, consultare la documentazione di Cargo.