Reliz profillari bilan buildarni customizatsiya qilish

Rust-da release profillari turli xil konfiguratsiyalarga ega bo'lgan oldindan belgilangan va sozlanishi mumkin bo'lgan profillar bo'lib, ular dasturchiga kodni kompilyatsiya qilish uchun turli xil variantlarni ko'proq nazorat qilish imkonini beradi. Har bir profil boshqalardan mustaqil ravishda configuratsiya qilingan.

Cargo ikkita asosiy profilga ega: cargo buildni ishga tushirganingizda dev cargo profili va cargo build --releaseni ishga tushirganingizda release cargo profilidan foydalanadi. dev profili ishlab chiqish(development) uchun yaxshi standart sozlamalar bilan belgilangan va release profili relizlar uchun yaxshi standart parametrlarga ega.

Ushbu profil nomlari sizning buildlaringiz natijalaridan tanish bo'lishi mumkin:

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

dev va release - bu kompilyator tomonidan ishlatiladigan turli xil profillar.

Loyihaning Cargo.toml fayliga [profile.*] boʻlimlarini aniq qoʻshmagan boʻlsangiz, Cargo har bir profil uchun standart(default) sozlamalarga ega. Moslashtirmoqchi(customizatsiya) boʻlgan har qanday profil uchun [profile.*] boʻlimlarini qoʻshish orqali siz default sozlamalarning har qanday quyi toʻplamini bekor qilasiz. Masalan, dev va release profillari uchun opt-level sozlamalari uchun default qiymatlar:

Fayl nomi: Cargo.toml

[profile.dev]
opt-level = 0

[profile.release]
opt-level = 3

opt-level sozlama Rust kodingizga qo'llaniladigan optimallashtirishlar sonini nazorat qiladi, 0 dan 3 gacha. Ko'proq optimallashtirishni qo'llash kompilyatsiya vaqtini uzaytiradi, shuning uchun agar siz tez-tez ishlab chiqayotgan bo'lsangiz va kodingizni kompilyatsiya qilsangiz, natijada olingan kod sekinroq ishlayotgan bo'lsa ham, tezroq kompilyatsiya qilishni kamroq optimallashtirishni xohlaysiz. Shunday qilib, dev uchun default opt-level 0 dir. Kodni releasega chiqarishga tayyor bo'lganingizda, kompilyatsiya qilish uchun ko'proq vaqt sarflaganingiz ma'qul. Siz release rejimida faqat bir marta kompilyatsiya qilasiz, lekin kompilyatsiya qilingan dasturni ko'p marta ishga tushirasiz, shuning uchun release rejimi tradelari tezroq ishlaydigan kod uchun kompilyatsiya vaqtini uzaytiradi. Shuning uchun release profili uchun default opt-level 3 dir.

Siz Cargo.toml da boshqa qiymat qoʻshish orqali default sozlamani bekor qilishingiz mumkin. Misol uchun, agar biz development profilida optimallashtirish darajasi 1 dan foydalanmoqchi bo'lsak, loyihamizning Cargo.toml fayliga ushbu ikki qatorni qo'shishimiz mumkin:

Fayl nomi: Cargo.toml

[profile.dev]
opt-level = 1

Bu kod default 0 sozlamasini bekor qiladi. Now when we run cargo build, Cargo dev profili uchun default sozlamalardan hamda opt-levelga moslashtirishimizdan foydalanadi. Biz opt-levelni 1 ga o‘rnatganimiz sababli, Cargo defaultdan ko‘ra ko‘proq optimallashtirishni qo‘llaydi, lekin release builddagi kabi emas.

Har bir profil uchun konfiguratsiya opsiyalari va standart sozlamalarning to'liq ro'yxati uchun Cargo texnik hujjatlariga qarang.