#timing #execution #sample #measure #processor #statistics #resources

rprofile

A simple crate to measure processor timings in selected samples of execution

4 releases

0.1.3 Aug 21, 2024
0.1.2 Aug 20, 2024
0.1.1 Aug 20, 2024
0.1.0 Aug 20, 2024

#19 in #measure

Download history 235/week @ 2024-08-15 71/week @ 2024-08-22 38/week @ 2024-09-12

232 downloads per month

MIT license

5KB
58 lines

The crate allow to trace sample execution, in-between start and stop trace, and extract statistics of the functions consuming the most resources.

Example usage

fn k() {
    trace_cpu!("k", for _i in 0..1000 {})
}

fn f() {
    for i in 0..100 {
        trace_cpu!("g", g());
    }
    for j in 0..10000 {}
}

fn g() {
    for i in 0..100 {
        k()
    }
}
fn main() {
    start();
    trace_cpu!("f1", f());
    trace_cpu!("f2", f());
    stop();
    f();
    show();
}

Will output:

f2                            : 1          calls | 43.356     total ms -- Timing overhead 10.1       ms
k                             : 20000      calls | 58.118     total ms -- Timing overhead 0          ms
f1                            : 1          calls | 40.9       total ms -- Timing overhead 10.1       ms
g                             : 200        calls | 83.916     total ms -- Timing overhead 20         ms

The overhead timing are indicative of the amount spend in the timing macros.

Dependencies

~1–5.5MB
~22K SLoC