mybatis_util/
time_util.rs1use std::time::{Duration, Instant, SystemTime};
2
3pub fn count_time_qps(tag: &str, total: u128, start: Instant) {
4 print_qps(tag, total, start);
5 print_each_time(tag, total, start);
6}
7
8pub fn print_qps(tag: &str, total: u128, start: Instant) {
10 let time = start.elapsed().as_nanos();
11 println!(
12 "[count_qps] {} use qps: {} QPS/s",
13 tag,
14 (total * 1000000000 as u128 / time)
15 );
16}
17
18pub fn print_each_time(tag: &str, total: u128, start: Instant) {
20 let time = start.elapsed();
21 println!(
22 "[count_each_time] {} use Time: {},each:{} ns/op",
23 tag,
24 duration_to_string(time),
25 time.as_nanos() / total as u128
26 );
27}
28
29pub fn print_time(tag: &str, start: Instant) {
31 let time = start.elapsed();
32 println!(
33 "[count_wait_time] {} use Time: {} ",
34 tag,
35 duration_to_string(time)
36 );
37}
38
39fn duration_to_string(wait: Duration) -> String {
41 if wait.gt(&Duration::from_millis(1)) {
42 return format!("{}ms", wait.as_millis());
43 } else if wait.gt(&Duration::from_secs(1)) {
44 return format!("{}s", wait.as_secs() as u128);
45 } else {
46 return format!("{}ns", wait.as_nanos());
47 }
48}