Time 如何利用crust中的Chrono库查找时差
我有一个Rust程序,我想用开始时间和结束时间做一些简单的基准测试Time 如何利用crust中的Chrono库查找时差,time,rust,Time,Rust,我有一个Rust程序,我想用开始时间和结束时间做一些简单的基准测试 使用chrono::{NaiveTime,Utc}; fn main(){ 让我们开始计时:NaiveTime=Utc::now().time(); 让我们结束时间:NaiveTime=Utc::now().time(); println!(“运行的总时间为{}”,结束时间-开始时间); } 上面的代码打印为: 运行总时间为PT520.532696S 如果我没有错的话,我猜是520秒,但是我怎么能把它转换成分钟呢?有更好的方
使用chrono::{NaiveTime,Utc};
fn main(){
让我们开始计时:NaiveTime=Utc::now().time();
让我们结束时间:NaiveTime=Utc::now().time();
println!(“运行的总时间为{}”,结束时间-开始时间);
}
上面的代码打印为:
运行总时间为PT520.532696S
如果我没有错的话,我猜是520秒,但是我怎么能把它转换成分钟呢?有更好的方法吗?简单介绍一下:
使用时钟::Utc;
fn main(){
让start_time=Utc::now().time();
让end_time=Utc::now().time();
设diff=结束时间-开始时间;
println!(“运行的总时间为{}”,diff.num_minutes());
}
但是请注意,以单调的方式测量时间不是一个好方法,如果用户以某种方式更改系统日期,此代码可能会显示-5分钟。也可以调用
time()
删除日期信息,这在使用chrono时很奇怪,因为通常情况下,您不想忽略日期,所以只需删除time()
调用即可。似乎公认的答案有一些潜在的缺陷
一种可能更好的方法,如
详情如下:
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);
}