Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Personnaliser les compilations avec les profils de publication

En Rust, les profils de publication (release profiles) sont des profils predefinis et personnalisables avec différentes configurations qui permettent à un programmeur d’avoir plus de contrôle sur les différentes options de compilation du code. Chaque profil est configure indépendamment des autres.

Cargo a deux profils principaux : le profil dev que Cargo utilise lorsque vous exécutez cargo build, et le profil release que Cargo utilise lorsque vous exécutez cargo build --release. Le profil dev est défini avec de bons paramètres par défaut pour le développement, et le profil release a de bons paramètres par défaut pour les compilations de publication.

Ces noms de profils vous sont peut-etre familiers d’après la sortie 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

dev et release sont ces différents profils utilises par le compilateur.

Cargo à des paramètres par défaut pour chacun des profils qui s’appliquent lorsque vous n’avez explicitement ajouté aucune section [profile.*] dans le fichier Cargo.toml du projet. En ajoutant des sections [profile.*] pour tout profil que vous souhaitez personnaliser, vous remplacez n’importe quel sous-ensemble des paramètres 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 appliquera à votre code, avec une plage de 0 à 3. Appliquer plus d’optimisations allonge le temps de compilation, donc si vous etes en développement et que vous compilez souvent votre code, vous voudrez moins d’optimisations pour compiler plus rapidement même si le code resultant s’exécute plus lentement. Le opt-level par défaut pour dev est donc 0. Lorsque vous etes prêt a publier votre code, il est preferable de passer plus de temps a compiler. Vous ne compilerez en mode release qu’une seule fois, mais vous executerez le programme compilé de nombreuses fois, donc le mode release echange un temps de compilation plus long contre un code qui s’exécute plus rapidement. C’est pourquoi le 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 d’optimisation 1 dans le profil de développement, nous pouvons ajouter ces deux lignes au fichier Cargo.toml de notre projet :

Fichier : Cargo.toml

[profile.dev]
opt-level = 1

Ce code remplace le paramètre par défaut de 0. Maintenant, lorsque nous exécutons cargo build, Cargo utilisera les paramètres par défaut du profil dev plus notre personnalisation de opt-level. Parce que nous avons défini opt-level a 1, Cargo appliquera plus d’optimisations que le paramètre par défaut, mais pas autant que dans une compilation de publication.

Pour la liste complète des options de configuration et des valeurs par défaut pour chaque profil, consultez la documentation de Cargo.