كيفية قياس أداء برامج Rust بشكل صحيح (القياس المعياري)
مرحبًا بالجميع! أنا مبتدئ في Rust وأحاول فهم كيفية قياس أداء برامجي بشكل صحيح. في لغات أخرى (مثل Python أو JavaScript) كنت ببساطة أستخدم المؤقتات المدمجة أو الوحدات، لكن في Rust تبين أن الأمر أكثر تعقيدًا.
لقد كتبت دالة بسيطة تجمع عناصر المتجه، وأريد معرفة الوقت الذي تستغرقه:
```rust
fn sum_vec(vec: &Vec) -> i32 {
let mut sum = 0;
for i in vec {
sum += i;
}
sum
}
fn main() {
let data = vec![1; 1_000_000];
// كيف يمكن قياس وقت تنفيذ sum_vec(&data)؟
println!("Sum: {}", sum_vec(&data));
}
```
لقد جربت استخدام `std::time::Instant`، لكني أحصل على نتائج غريبة: أحيانًا 0 ميكروثانية، وأحيانًا قيم مختلفة جدًا عند التشغيل المتكرر. كما سمعت عن `cargo bench`، لكني لا أفهم كيفية إعداده.
أرجو إرشادي:
1. كيف يمكن قياس وقت تنفيذ جزء صغير من الكود بشكل صحيح؟
2. كيف يمكن تجنب تأثير المح