我有一个 Rust 程序,我想用开始时间和结束时间做一些简单的基准测试!
use chrono::{NaiveTime, Utc};
fn main() {
let start_time: NaiveTime = Utc::now().time();
let end_time: NaiveTime = Utc::now().time();
println!("Total time taken to run is {}", end_time - start_time);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码打印为:
Total time taken to run is PT520.532696S
Run Code Online (Sandbox Code Playgroud)
如果我没记错的话,我想是 520 秒,但是我如何将其转换为分钟?有没有更好的办法?
看来接受的答案有一些潜在的缺陷。
锈病苗圃中推荐的可能更好的方法
如下:
use std::time::{Duration, Instant};
use std::thread;
fn expensive_function() {
thread::sleep(Duration::from_secs(1));
}
fn main() {
let start = Instant::now();
expensive_function();
let duration = start.elapsed();
println!("Time elapsed in expensive_function() is: {:?}", duration);
}
Run Code Online (Sandbox Code Playgroud)
use chrono::Utc;
fn main() {
let start_time = Utc::now().time();
let end_time = Utc::now().time();
let diff = end_time - start_time;
println!("Total time taken to run is {}", diff.num_minutes());
}
Run Code Online (Sandbox Code Playgroud)
但请注意,这不是以单调方式测量时间的好方法,如果用户以某种方式更改系统日期,此代码可能会显示 -5 分钟。还调用time()
删除日期的信息,这在您使用 chrono 时很奇怪,因为通常您不想忽略日期,所以只需删除time()
调用。
归档时间: |
|
查看次数: |
1526 次 |
最近记录: |