Rust

การเพิ่มประสิทธิภาพ

Profiling, benchmarking, กลยุทธ์ allocator, zero-copy, SIMD, inline, การเพิ่มประสิทธิภาพ codegen

20 คำถามสัมภาษณ์·
Senior
1

เครื่องมือใดที่สร้าง flame graph เพื่อแสดงภาพ hotspot ด้านประสิทธิภาพในโปรแกรม Rust?

คำตอบ

cargo-flamegraph เป็นเครื่องมือมาตรฐานสำหรับสร้าง flame graph จากข้อมูล profiling โดยใช้ perf บน Linux หรือ dtrace บน macOS เพื่อเก็บตัวอย่าง stack จากนั้นสร้างการแสดงผล SVG แบบโต้ตอบที่ช่วยให้ระบุฟังก์ชันที่ใช้ CPU มากที่สุดได้อย่างรวดเร็ว

2

crate ใดที่แนะนำสำหรับการเขียน micro-benchmark ที่แม่นยำและเชื่อถือได้ทางสถิติใน Rust?

คำตอบ

Criterion เป็น crate มาตรฐานสำหรับการทำ benchmarking ใน Rust โดยให้การวิเคราะห์ทางสถิติที่แข็งแกร่ง ตรวจจับการถดถอยของประสิทธิภาพระหว่างการรัน สร้างกราฟ HTML และจัดการ warm-up กับจำนวนรอบการวนซ้ำโดยอัตโนมัติเพื่อให้ได้ผลลัพธ์ที่เชื่อถือได้

3

แนวคิด zero-cost abstraction ใน Rust หมายความว่าอย่างไร?

คำตอบ

zero-cost abstraction หมายความว่าการแอบสแตรกต์ระดับสูง (iterators, traits, generics) ถูกคอมไพล์เป็นโค้ดเครื่องที่มีประสิทธิภาพเทียบเท่าโค้ดระดับต่ำที่เขียนด้วยมือ ต้นทุนของการแอบสแตรกต์เกิดขึ้นเฉพาะตอนคอมไพล์ (monomorphization) ไม่ใช่ตอนรันไทม์

4

attribute ใดที่แนะนำให้คอมไพเลอร์ Rust ทำการ inline ฟังก์ชัน?

5

ตัวเลือกการคอมไพล์ของ Rust ใดที่เปิดใช้งานระดับการปรับให้เหมาะสมสูงสุด?

+17 คำถามสัมภาษณ์

เชี่ยวชาญ Rust สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี