pub struct ReportBuilder<'a> { /* private fields */ }
Implementations§
Source§impl<'a> ReportBuilder<'a>
impl<'a> ReportBuilder<'a>
pub fn new(profiler: &'a RwLock<Result<Profiler>>) -> Self
Sourcepub fn frames_post_processor<T>(
&mut self,
frames_post_processor: T,
) -> &mut Self
pub fn frames_post_processor<T>( &mut self, frames_post_processor: T, ) -> &mut Self
Examples found in repository?
examples/post_processor.rs (lines 92-94)
44fn main() {
45 let prime_numbers = Arc::new(prepare_prime_numbers());
46
47 // println!("{}", std::mem::size_of::<Collector<UnresolvedFrames>>());
48 let guard = rsperftools::ProfilerGuard::new(100).unwrap();
49
50 let p1 = prime_numbers.clone();
51 std::thread::Builder::new()
52 .name("THREAD_ONE".to_owned())
53 .spawn(move || loop {
54 let mut _v = 0;
55
56 for i in 2..50000 {
57 if is_prime_number(i, p1.clone()) {
58 _v += 1;
59 }
60 }
61 })
62 .unwrap();
63
64 let p2 = prime_numbers.clone();
65 std::thread::Builder::new()
66 .name("THREAD_TWO".to_owned())
67 .spawn(move || loop {
68 let mut _v = 0;
69
70 for i in 2..50000 {
71 if is_prime_number(i, p2.clone()) {
72 _v += 1;
73 }
74 }
75 })
76 .unwrap();
77
78 let p3 = prime_numbers.clone();
79 std::thread::spawn(move || loop {
80 let mut _v = 0;
81
82 for i in 2..50000 {
83 if is_prime_number(i, p3.clone()) {
84 _v += 1;
85 }
86 }
87 });
88
89 loop {
90 match guard
91 .report()
92 .frames_post_processor(|frames| {
93 frames.thread_name = "PROCESSED".to_string();
94 })
95 .build()
96 {
97 Ok(report) => {
98 println!("{}", report);
99 }
100 Err(_) => {}
101 };
102 std::thread::sleep(std::time::Duration::from_secs(1))
103 }
104 // rsperftools::PROFILER.lock().unwrap().stop();
105}
Sourcepub fn build(&mut self) -> Result<Report>
pub fn build(&mut self) -> Result<Report>
Examples found in repository?
examples/prime_number.rs (line 60)
43fn main() {
44 let prime_numbers = prepare_prime_numbers();
45
46 // println!("{}", std::mem::size_of::<Collector<UnresolvedFrames>>());
47 let guard = rsperftools::ProfilerGuard::new(100).unwrap();
48
49 loop {
50 let mut v = 0;
51
52 for i in 2..50000 {
53 if is_prime_number(i, &prime_numbers) {
54 v += 1;
55 }
56 }
57
58 println!("Prime numbers: {}", v);
59
60 match guard.report().build() {
61 Ok(report) => {
62 println!("{}", report);
63 }
64 Err(_) => {}
65 };
66 }
67
68 // rsperftools::PROFILER.lock().unwrap().stop();
69}
More examples
examples/multithread.rs (line 89)
44fn main() {
45 let prime_numbers = Arc::new(prepare_prime_numbers());
46
47 let guard = rsperftools::ProfilerGuard::new(100).unwrap();
48
49 let p1 = prime_numbers.clone();
50 std::thread::Builder::new()
51 .name("THREAD_ONE".to_owned())
52 .spawn(move || loop {
53 let mut _v = 0;
54
55 for i in 2..50000 {
56 if is_prime_number(i, p1.clone()) {
57 _v += 1;
58 }
59 }
60 })
61 .unwrap();
62
63 let p2 = prime_numbers.clone();
64 std::thread::Builder::new()
65 .name("THREAD_TWO".to_owned())
66 .spawn(move || loop {
67 let mut _v = 0;
68
69 for i in 2..50000 {
70 if is_prime_number(i, p2.clone()) {
71 _v += 1;
72 }
73 }
74 })
75 .unwrap();
76
77 let p3 = prime_numbers.clone();
78 std::thread::spawn(move || loop {
79 let mut _v = 0;
80
81 for i in 2..50000 {
82 if is_prime_number(i, p3.clone()) {
83 _v += 1;
84 }
85 }
86 });
87
88 loop {
89 match guard.report().build() {
90 Ok(report) => {
91 println!("{}", report);
92 }
93 Err(_) => {}
94 };
95 std::thread::sleep(std::time::Duration::from_secs(1))
96 }
97 // rsperftools::PROFILER.lock().unwrap().stop();
98}
examples/post_processor.rs (line 95)
44fn main() {
45 let prime_numbers = Arc::new(prepare_prime_numbers());
46
47 // println!("{}", std::mem::size_of::<Collector<UnresolvedFrames>>());
48 let guard = rsperftools::ProfilerGuard::new(100).unwrap();
49
50 let p1 = prime_numbers.clone();
51 std::thread::Builder::new()
52 .name("THREAD_ONE".to_owned())
53 .spawn(move || loop {
54 let mut _v = 0;
55
56 for i in 2..50000 {
57 if is_prime_number(i, p1.clone()) {
58 _v += 1;
59 }
60 }
61 })
62 .unwrap();
63
64 let p2 = prime_numbers.clone();
65 std::thread::Builder::new()
66 .name("THREAD_TWO".to_owned())
67 .spawn(move || loop {
68 let mut _v = 0;
69
70 for i in 2..50000 {
71 if is_prime_number(i, p2.clone()) {
72 _v += 1;
73 }
74 }
75 })
76 .unwrap();
77
78 let p3 = prime_numbers.clone();
79 std::thread::spawn(move || loop {
80 let mut _v = 0;
81
82 for i in 2..50000 {
83 if is_prime_number(i, p3.clone()) {
84 _v += 1;
85 }
86 }
87 });
88
89 loop {
90 match guard
91 .report()
92 .frames_post_processor(|frames| {
93 frames.thread_name = "PROCESSED".to_string();
94 })
95 .build()
96 {
97 Ok(report) => {
98 println!("{}", report);
99 }
100 Err(_) => {}
101 };
102 std::thread::sleep(std::time::Duration::from_secs(1))
103 }
104 // rsperftools::PROFILER.lock().unwrap().stop();
105}
Auto Trait Implementations§
impl<'a> Freeze for ReportBuilder<'a>
impl<'a> !RefUnwindSafe for ReportBuilder<'a>
impl<'a> !Send for ReportBuilder<'a>
impl<'a> !Sync for ReportBuilder<'a>
impl<'a> Unpin for ReportBuilder<'a>
impl<'a> !UnwindSafe for ReportBuilder<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more