Dağıtım Profilleri ile Yapıları Özelleştirme

Rust'ta dağıtım profilleri, bir programcının kod derlemek için çeşitli seçenekler üzerinde daha fazla kontrole sahip olmasını sağlayan farklı konfigürasyonlara sahip önceden tanımlanmış ve özelleştirilebilir profillerdir. Her profil diğerlerinden bağımsız olarak yapılandırılır.

Cargo'nun iki ana profili vardır: Cargo'nun, cargo build'i çalıştırdığınızda kullandığı dev profili ve cargo build --release'i çalıştırdığınızda kullandığı release profili geliştirme için iyi varsayılanlarla tanımlanır ve dağıtım profili, dağıtım derlemeleri için iyi varsayılanlara sahiptir.

Bu profil adları, yapılarınızın çıktısından tanıdık gelebilir:

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

dev ve release, derleyici tarafından kullanılan farklı tür profillerdir.

Cargo'nun, projenin Cargo.toml dosyasına açıkça herhangi bir [profile.*] bölümü eklemediğinizde uygulanan profillerin her biri için varsayılan ayarları vardır. Özelleştirmek istediğiniz herhangi bir profil için [profil.*] bölümlerini ekleyerek, varsayılan ayarların herhangi bir alt kümesini geçersiz kılarsınız. Örneğin, dev ve release profilleri için opt-level ayarının varsayılan değerleri şunlardır:

Dosya adı: Cargo.toml

[profile.dev]
opt-level = 0

[profile.release]
opt-level = 3

Optimizasyon düzeyi (opt-level) ayarı, 0 ila 3 aralığında Rust'ın kodunuza uygulayacağı optimizasyonların sayısını kontrol eder. Bu nedenle dev profili için varsayılan tercih düzeyi 0'dır. Kodunuzu yayınlamaya hazır olduğunuzda, derlemeye daha fazla zaman harcamak en iyisidir. Dağıtım modunda yalnızca bir kez derlersiniz, ancak derlenmiş programı birçok kez çalıştırırsınız, bu nedenle dağıtım modu, daha hızlı çalışan kod için daha uzun derleme süresi değiştirir. Bu nedenle, release profili için varsayılan tercih düzeyi 3'tür.

Cargo.toml'da bunun için farklı bir değer ekleyerek bir varsayılan ayarı geçersiz kılabilirsiniz. Örneğin geliştirme profilinde birinci optimizasyon seviyesini kullanmak istiyorsak projemizin Cargo.toml dosyasına şu iki satırı ekleyebiliriz:

Dosya adı: Cargo.toml

[profile.dev]
opt-level = 1

Bu kod, varsayılan 0 ayarını geçersiz kılar. Şimdi, cargo build'i çalıştırdığımızda, Cargo, dev profili için varsayılanları ve ayrıca opt-level özelleştirmemizi kullanacak. opt-level'i 1 olarak ayarladığımız için, Cargo varsayılandan daha fazla optimizasyon uygulayacak, ancak bir release yapısındaki kadar değil.

Her profil için yapılandırma seçeneklerinin ve varsayılanların tam listesi için Cargo'nun dokümantasyonuna bakın.