1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
pub trait QPS { fn qps(&self, total: u64); fn time(&self, total: u64); fn cost(&self); } impl QPS for std::time::Instant { fn qps(&self, total: u64) { let time = self.elapsed(); println!( "use QPS: {} QPS/s", (total as u128 * 1000000000 as u128 / time.as_nanos() as u128) ); } fn time(&self, total: u64) { let time = self.elapsed(); println!( "use Time: {:?} ,each:{} ns/op", &time, time.as_nanos() / (total as u128) ); } fn cost(&self) { let time = self.elapsed(); println!("cost:{:?}", time); } }