ปรับ 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