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 [unoptimized + debuginfo] target(s) in 0.0s
$ cargo build --release
Finished release [optimized] target(s) in 0.0s
Les profils dev
et release
sont mentionnés dans cette sortie de compilation,
pour indiquer les différents profils qu'utilise le compilateur.
Cargo a des réglages par défaut pour chacun des profils qui s'appliquent
lorsqu'il n'y a pas de section [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 certainement avoir une compilation rapide
même si le code qui en résulte s'exécute plus lentement. C'est la raison pour
laquelle la valeur par défaut de opt-level
pour dev
est à 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 n'importe quel 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.