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

Налаштування збірок за допомогою профілів релізу

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

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

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

$ 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 і release — це ці різні профілі, які використовуються компілятором.

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

Filename: Cargo.toml

[profile.dev]
opt-level = 0

[profile.release]
opt-level = 3

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

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

Filename: Cargo.toml

[profile.dev]
opt-level = 1

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

Повний список параметрів конфігурації та типових значень для кожного профілю дивіться в документації Cargo.