mybatis_util/
time_util.rs

1use 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
8///count qps
9pub 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
18///计算每个操作耗时ns纳秒
19pub 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
29/// count wait time
30pub 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
39/// duration_to_string
40fn 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}