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

ปรับ Build ด้วย Release Profile

ใน Rust release profile คือ profile ที่นิยามไว้ล่วงหน้าและกำหนด เองได้ ด้วย configuration ต่างกันที่อนุญาตให้ programmer มีการควบคุม มากขึ้นเหนือ option ต่าง ๆ สำหรับการคอมไพล์โค้ด แต่ละ profile ถูก กำหนดอย่างอิสระจากตัวอื่น

Cargo มีสอง profile หลัก — profile dev ที่ Cargo ใช้เมื่อคุณรัน cargo build และ profile release ที่ Cargo ใช้เมื่อคุณรัน cargo build --release profile dev ถูกนิยามด้วย default ที่ดี สำหรับการพัฒนา และ profile release มี default ที่ดีสำหรับ release build

ชื่อ profile เหล่านี้อาจคุ้นจาก output ของ build ของคุณ:

$ 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 คือ profile ต่างกันเหล่านี้ที่ compiler ใช้

Cargo มี setting เริ่มต้นสำหรับแต่ละ profile ที่ใช้เมื่อคุณยังไม่ได้ เพิ่ม section [profile.*] ในไฟล์ Cargo.toml ของโปรเจกต์ชัดเจน โดยเพิ่ม section [profile.*] สำหรับ profile ใดที่คุณต้องการกำหนด เอง คุณ override subset ใดของ setting เริ่มต้น ตัวอย่างเช่น นี่คือ ค่าเริ่มต้นสำหรับ setting opt-level สำหรับ profile dev และ release:

Filename: Cargo.toml

[profile.dev]
opt-level = 0

[profile.release]
opt-level = 3

setting opt-level ควบคุมจำนวน optimization ที่ Rust จะใช้กับโค้ด ของคุณ ในช่วง 0 ถึง 3 การใช้ optimization มากขึ้นยืดเวลาการคอมไพล์ ดังนั้นถ้าคุณอยู่ในการพัฒนาและคอมไพล์โค้ดของคุณบ่อย คุณจะต้องการ optimization น้อยลงเพื่อคอมไพล์เร็วขึ้นแม้ว่าโค้ดที่ได้รันช้าลง ดังนั้น opt-level เริ่มต้นสำหรับ dev คือ 0 เมื่อคุณพร้อม release โค้ดของคุณ ดีที่สุดที่จะใช้เวลาคอมไพล์มากขึ้น คุณจะคอมไพล์ ใน release mode เพียงครั้งเดียว แต่คุณจะรันโปรแกรมที่คอมไพล์หลาย ครั้ง ดังนั้น release mode trade เวลาคอมไพล์นานกว่าสำหรับโค้ดที่ รันเร็วกว่า นั่นคือเหตุผลที่ opt-level เริ่มต้นสำหรับ profile release คือ 3

คุณ override setting เริ่มต้นโดยเพิ่มค่าต่างกันสำหรับมันใน Cargo.toml ได้ ตัวอย่างเช่น ถ้าเราต้องการใช้ optimization level 1 ใน development profile เราเพิ่มสองบรรทัดนี้ในไฟล์ Cargo.toml ของ โปรเจกต์เรา:

Filename: Cargo.toml

[profile.dev]
opt-level = 1

โค้ดนี้ override setting เริ่มต้นของ 0 ตอนนี้เมื่อเรารัน cargo build Cargo จะใช้ default สำหรับ profile dev บวกการกำหนด เองของเราที่ opt-level เพราะเราตั้ง opt-level เป็น 1 Cargo จะใช้ optimization มากขึ้นกว่า default แต่ไม่มากเท่าใน release build

สำหรับ list เต็มของ option configuration และ default สำหรับแต่ละ profile ดู documentation ของ Cargo