basic/
basic.rs

1use std::num::Wrapping;
2
3fn heavy_calc1() -> Wrapping<u64> {
4    let mut v = Wrapping(1u64);
5    for i in 0..1_000_000_000 {
6        v += v * Wrapping(i);
7    }
8    v
9}
10
11fn heavy_calc2() -> Wrapping<u64> {
12    let mut v = Wrapping(1u64);
13    for i in 0..800_000_000 {
14        v += v * Wrapping(i);
15    }
16    v
17}
18
19fn big_fn() {
20    // work 1
21
22    superluminal_perf::begin_event("example-work1");
23    let v = heavy_calc1();
24    superluminal_perf::end_event();
25    println!("work1 done: {}", v);
26
27    // work 2
28
29    superluminal_perf::begin_event("example-work2");
30    let v = heavy_calc2();
31    superluminal_perf::end_event();
32    println!("work2 done: {}", v);
33}
34
35fn main() {
36    println!("Enabled: {}", superluminal_perf::enabled());
37
38    superluminal_perf::set_current_thread_name("mythread");
39
40    big_fn();
41}