Налаштування Збірок з Release Профілями

В Rust, release профілі є попередньо визначені та настроюваними профілями з різними конфігураціями які дозволяють програмісту мати більше контролю над різними опціями для компіляції коду. Кожен профіль налаштований незалежно від інших.

Cargo має два основні профілі: профіль dev який використовується під час запуску cargo build і профіль release, який використовується під час запуску cargo build --release. Профіль dev визначено з хорошими параметрами за замовчуванням для розробки і профіль release має хороші параметри за замовчуванням для збірки для випуску.

Ці імена профілів можуть бути знайомі з виводу ваших збірок:

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

dev і release це різні профілі, які використовуються компілятором.

Cargo має налаштування за замовчуванням для кожного профілю, який застосовується, навіть, якщо ви ще явно не додали жодної секції [profile.*] в файл Cargo.toml проєкту. Додаючи секції [profile.*] будь-якому профілю, який ви бажаєте налаштувати, ви перевизначаєте будь-яку підмножину налаштувань за замовчуванням. Наприклад, ось значення за замовчуванням налаштування opt-level для профілів dev і release:

Файл: Cargo.toml

[profile.dev]
opt-level = 0

[profile.release]
opt-level = 3

Налаштування opt-level контролює кількість оптимізації, яку Rust буде застосовувати до вашого коду з діапазоном від 0 до 3. Чим більше оптимізацій застосовується, тим довше стає час компіляції, тому якщо ви часто компілюєте код під час розробки, вам знадобиться менше оптимізацій, щоб компілювати швидше, навіть якщо отриманий код повільніше. Тому opt-level для dev за замовчуванням 0. Коли ви готові до випуску вашого коду, краще витратити більше часу на компіляцію. Ви будете компілювати в режимі випуску тільки раз, але ви запускатимете скомпільовану програму багато разів, тому режим випуску обмінює довший час компіляції на швидший код. Саме тому opt-level для профілю release за замовчуванням 3.

Ви можете перевизначити налаштування за замовчуванням, додав інше значення в Cargo.toml. Наприклад, якщо ми хочемо використовувати оптимізацію 1-го рівня в профілі розробки, ми можемо додати ці два рядки в файл Cargo.toml нашого проєкту:

Файл: Cargo.toml

[profile.dev]
opt-level = 1

Цей код перевизначає налаштування за замовчуванням 0. Тепер, коли ми запустимо cargo build, Cargo буде використовувати за замовчуванням профіль dev плюс наше налаштування opt-level. Оскільки ви встановили opt-level на 1, Cargo буде застосовувати більше оптимізацій за замовчуванням, але не настільки багато, як в режимі випуску.

For the full list of configuration options and defaults for each profile, see Cargo’s documentation.