Personnaliser les compilations avec les profils de publication
Dans Rust, les profils de publication sont des profils prédéfinis et personnalisables avec différentes configurations qui permettent au développeur d’avoir plus de contrôle sur différentes options de compilation du code. Chaque profil est configuré indépendamment des autres.
Cargo a deux profils principaux : le profil dev que cargo utilise lorsque vous lancez cargo build et le profil release (NdT : publication) que cargo utilise lorsque vous lancez cargo build --release. Le profil dev est défini avec de bons réglages par défaut pour le développement, et le profil release a de bons réglages par défaut de compilation pour la publication.
Ces noms de profils vous rappellent peut-être quelque chose sur la sortie standard de vos compilations :
$ cargo build
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.00s
$ cargo build --release
Finished `release` profile [optimized] target(s) in 0.32s
Les profils dev et release sont ces différents profils qu’utilise le compilateur.
Cargo a des réglages par défaut pour chacun des profils qui s’appliquent quand vous n’avez pas explicitement ajouté de sections [profile.*] dans le fichier Cargo.toml du projet. En ajoutant les sections [profile.*] pour chaque profil que vous souhaitez personnaliser, vous pouvez remplacer n’importe quel paramètre par défaut. Par exemple, voici les valeurs par défaut pour le paramètre opt-level des profils dev et release :
Fichier : Cargo.toml
[profile.dev]
opt-level = 0
[profile.release]
opt-level = 3
Le paramètre opt-level contrôle le nombre d’optimisations que Rust va appliquer à votre code, sur une échelle allant de 0 à 3. L’application d’un niveau plus haut d’optimisation signifie un allongement de la durée de compilation, donc si vous êtes en train de développer et que vous compilez souvent votre code, vous préférerez avoir moins d’optimisations pour compiler plus rapidement, même si le code qui en résulte s’exécute plus lentement. La valeur par défaut de opt-level pour dev est donc à 0. Lorsque vous serez prêt à publier votre code, il sera préférable de passer un peu plus de temps à le compiler. Vous ne compilerez en mode publication (NdT : release) qu’une seule fois, mais vous exécuterez le programme compilé plusieurs fois, donc le mode publication opte pour un temps de compilation plus long afin que le code s’exécute plus rapidement. C’est pourquoi le paramètre opt-level par défaut pour le profil release est à 3.
Vous pouvez remplacer un paramètre par défaut en ajoutant une valeur différente dans Cargo.toml. Par exemple, si nous voulons utiliser le niveau 1 d’optimisation dans le profil de développement, nous pouvons ajouter ces deux lignes à notre fichier Cargo.toml :
Fichier : Cargo.toml
[profile.dev]
opt-level = 1
Ce code remplace le paramètre par défaut à 0. Maintenant, lorsque nous lançons cargo build, cargo va utiliser les réglages par défaut du profil dev ainsi que notre valeur personnalisée de opt-level. Comme nous avons réglé opt-level à 1, Cargo va appliquer plus d’optimisation que par défaut, mais pas autant que dans une compilation de publication.
Pour la liste complète des options de configuration et leurs valeurs par défaut pour chaque profil, référez-vous à la documentation de cargo.