0

我对 Rust 很陌生,我想为我的程序的执行计时。我在网上搜索,但到目前为止一无所获。运行后cargo build,我的代码执行如下:

bling@bling ~/github/rust/hello_world [master *]
± % ./target/debug/hello_world

Cargo 是否有内置方法来计时执行,还是我需要使用命令行?

4

3 回答 3

5

您可以使用time,它是一个命令行实用程序。

$ time ./target/debug/hello_world
./target/debug/hello_world  3.02s user 0.18s system 34% cpu 9.177 total

那将是最简单的方法。我认为您不能cargo直接将标志传递给编译步骤。

有类似的东西:cargo bench它允许你为你的程序编写基准。这为您提供了有关程序某些部分的速度的非常具体的报告。

文档有更多阅读

$ cargo bench
running 1 test
test bench_xor_1000_ints ... bench:       131 ns/iter (+/- 3)

虽然这仅适用于夜间 Rust。

于 2015-11-05T21:10:30.200 回答
5

Cargo 没有内置的计时方法。您将需要使用您的操作系统机制。例如,在 Linux 或 OS X 上,您可能可以使用time

time ./target/debug/hello_world

特别值得注意的是,您有一个调试版本。这没有优化,不应用于分析。相反,您应该在发布模式下构建代码:

cargo build --release

然后执行target/release目录中的程序。

此外,您可能不想包括 Cargo 本身的时间。也就是说,不要执行以下任何一项:

time cargo run
time cargo run --release
于 2015-11-05T21:10:49.067 回答
2

它没有被烤成货物,但超精细是用铁锈写成的,是时间的替代品:

cargo install hyperfine
hyperfine ./target/debug/hello_world
于 2020-10-04T20:54:57.880 回答