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

Sürüm Profilleriyle Derlemeleri Özelleştirmek

Rust’ta sürüm profilleri (release profiles), bir programcının kod derlemeyle ilgili çeşitli seçenekler üzerinde daha fazla denetim sahibi olmasını sağlayan, önceden tanımlanmış ve özelleştirilebilir profil ayarlarıdır. Her profil diğerlerinden bağımsız olarak yapılandırılır.

Cargo’nun iki ana profili vardır: cargo build çalıştırdığınızda kullanılan dev profili ve cargo build --release çalıştırdığınızda kullanılan release profili. dev profili geliştirme için iyi varsayılanlarla gelir; release profiliyse yayıma uygun derlemeler için iyi varsayılanlara sahiptir.

Bu profil adlarını, derleme çıktılarında daha önce görmüş olabilirsiniz:

$ cargo build
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.00s
$ cargo build --release
    Finished `release` profile [optimized] target(s) in 0.32s

Buradaki dev ve release, derleyicinin kullandığı farklı profillerdir.

Projede Cargo.toml dosyasına açıkça herhangi bir [profile.*] bölümü eklemediğiniz sürece Cargo, her profil için varsayılan ayarlar uygular. Özelleştirmek istediğiniz profile uygun bir [profile.*] bölümü eklediğinizde, varsayılan ayarların istediğiniz kısmını geçersiz kılmış olursunuz. Örneğin, dev ve release profilleri için opt-level ayarının varsayılan değerleri şöyledir:

Dosya Adı: Cargo.toml

[profile.dev]
opt-level = 0

[profile.release]
opt-level = 3

opt-level ayarı, Rust’ın kodunuza uygulayacağı iyileştirme miktarını belirler; aralık 0 ile 3 arasındadır. Daha fazla iyileştirme derleme süresini uzatır. Bu yüzden geliştirme aşamasında kodunuzu sık sık derliyorsanız, ortaya çıkan kod biraz daha yavaş çalışsa bile daha hızlı derleme için daha az iyileştirme tercih edersiniz. Bu nedenle dev için varsayılan opt-level değeri 0’dır. Kodunuzu yayımlamaya hazır olduğunuzdaysa derlemeye biraz daha fazla zaman ayırmak en iyisidir. Sürüm kipinde genellikle bir kez derlersiniz, ama derlenmiş programı çok kez çalıştırırsınız; bu yüzden sürüm kipi, daha uzun derleme süresini daha hızlı çalışan kodla takas eder. release profili için varsayılan opt-level değerinin 3 olmasının sebebi budur.

Varsayılan bir ayarı, Cargo.toml içine farklı bir değer yazarak geçersiz kılabilirsiniz. Örneğin geliştirme profilinde 1. düzey iyileştirme kullanmak istersek, 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. Artık cargo build çalıştırdığımızda Cargo, dev profiline ait varsayılanlarla birlikte bizim opt-level özelleştirmemizi de kullanır. opt-level değerini 1 yaptığımız için Cargo varsayılandan daha fazla iyileştirme uygular, ama bir sürüm derlemesindeki kadar fazla değil.

Her profil için tüm yapılandırma seçeneklerinin ve varsayılan değerlerin tam listesi için Cargo belgelerine bakın.