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

Dostosowywanie kompilacji za pomocą profili wydania

W Rust profile wydania to predefiniowane, dostosowywalne profile z różnymi konfiguracjami, które pozwalają programistom na większą kontrolę nad różnymi opcjami kompilacji kodu. Każdy profil jest konfigurowany niezależnie od innych.

Cargo ma dwa główne profile: profil dev, którego Cargo używa podczas uruchamiania cargo build, oraz profil release, którego Cargo używa podczas uruchamiania cargo build --release. Profil dev jest zdefiniowany z dobrymi wartościami domyślnymi do tworzenia oprogramowania, a profil release ma dobre wartości domyślne dla kompilacji wydania.

Te nazwy profili mogą być znane z danych wyjściowych Twoich kompilacji:

$ 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 i release to różne profile używane przez kompilator.

Cargo ma domyślne ustawienia dla każdego z profili, które są stosowane, gdy nie dodałeś jawnie żadnych sekcji [profile.*] do pliku Cargo.toml projektu. Dodając sekcje [profile.*] dla dowolnego profilu, który chcesz dostosować, nadpisujesz dowolny podzbiór domyślnych ustawień. Na przykład, oto domyślne wartości ustawienia opt-level dla profili dev i release:

Nazwa pliku: Cargo.toml

[profile.dev]
opt-level = 0

[profile.release]
opt-level = 3

Ustawienie opt-level kontroluje liczbę optymalizacji, które Rust zastosuje do Twojego kodu, w zakresie od 0 do 3. Zastosowanie większej liczby optymalizacji wydłuża czas kompilacji, więc jeśli jesteś w fazie rozwoju i często kompilujesz swój kod, będziesz chciał mniej optymalizacji, aby kompilować szybciej, nawet jeśli wynikowy kod będzie działał wolniej. Domyślny opt-level dla dev wynosi zatem 0. Kiedy jesteś gotowy do wydania swojego kodu, najlepiej poświęcić więcej czasu na kompilację. Skompilujesz w trybie wydania tylko raz, ale będziesz uruchamiać skompilowany program wiele razy, więc tryb wydania wymienia dłuższy czas kompilacji na szybszy kod. Dlatego domyślny opt-level dla profilu release wynosi 3.

Możesz nadpisać domyślne ustawienie, dodając dla niego inną wartość w Cargo.toml. Na przykład, jeśli chcemy użyć poziomu optymalizacji 1 w profilu deweloperskim, możemy dodać te dwie linie do pliku Cargo.toml naszego projektu:

Nazwa pliku: Cargo.toml

[profile.dev]
opt-level = 1

Ten kod nadpisuje domyślne ustawienie 0. Teraz, gdy uruchomimy cargo build, Cargo użyje domyślnych ustawień dla profilu dev plus nasze dostosowanie opt-level. Ponieważ ustawiliśmy opt-level na 1, Cargo zastosuje więcej optymalizacji niż domyślnie, ale nie tak wiele, jak w kompilacji wydania.

Aby uzyskać pełną listę opcji konfiguracji i wartości domyślnych dla każdego profilu, zobacz dokumentację Cargo.