Personnaliser les builds avec des profils de publication

Beginner

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Bienvenue dans Personnaliser les builds avec des profils de publication. Ce laboratoire est une partie du Rust Book. Vous pouvez pratiquer vos compétences Rust dans LabEx.

Dans ce laboratoire, nous allons explorer la manière de personnaliser les profils de publication de Rust en ajoutant des sections [profile.*] au fichier Cargo.toml et en substituant les paramètres par défaut tels que le niveau d'optimisation pour l'optimisation.

Personnaliser les builds avec des profils de publication

En Rust, les profils de publication sont des profils prédéfinis et personnalisables avec différentes configurations qui permettent à un programmeur de mieux contrôler diverses options pour compiler le code. Chaque profil est configuré 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 bonnes valeurs par défaut pour le développement, et le profil release a de bonnes valeurs par défaut pour les builds de publication.

Ces noms de profil peuvent vous être familiers à partir de la sortie de vos builds :

$ cargo build
    Finished dev [unoptimized + debuginfo] target(s) in 0.0s
$ cargo build --release
    Finished release [optimized] target(s) in 0.0s

Le dev et le release sont ces différents profils utilisés par le compilateur.

Cargo a des paramètres par défaut pour chacun des profils qui s'appliquent lorsque vous n'avez pas explicitement ajouté de sections [profile.*] dans le fichier Cargo.toml du projet. En ajoutant des sections [profile.*] pour n'importe quel profil que vous voulez personnaliser, vous substituez 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 :

Nom de 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 prolonge le temps de compilation, donc si vous êtes en développement et que vous compilez souvent votre code, vous voudrez moins d'optimisations pour compiler plus rapidement même si le code résultant exécute plus lentement. La valeur par défaut de opt-level pour dev est donc 0. Lorsque vous êtes prêt à publier votre code, il est préférable de consacrer plus de temps à la compilation. Vous ne compilerez qu'une fois en mode release, mais vous exécuterez le programme compilé de nombreuses fois, donc le mode release échange un temps de compilation plus long contre un code qui exécute plus rapidement. C'est pourquoi la valeur par défaut de opt-level pour le profil release est 3.

Vous pouvez substituer un paramètre par défaut en ajoutant une valeur différente pour celui-ci 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 :

Nom de fichier : Cargo.toml

[profile.dev]
opt-level = 1

Ce code substitue la valeur 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 sur 1, Cargo appliquera plus d'optimisations que par défaut, mais pas autant qu'en mode release.

Pour obtenir la liste complète des options de configuration et des paramètres par défaut pour chaque profil, consultez la documentation de Cargo à https://doc.rust-lang.org/cargo/reference/profiles.html.

Sommaire

Félicitations ! Vous avez terminé le laboratoire Personnaliser les builds avec des profils de publication. Vous pouvez pratiquer d'autres laboratoires dans LabEx pour améliorer vos compétences.