Avatar ·

如何正确测量 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. 如何避免编译器的影响?