12
12
// ZettaScale Zenoh Team, <[email protected] >
13
13
//
14
14
#include < stdio.h>
15
- #include < time.h >
15
+ #include < chrono >
16
16
17
17
#include " ../getargs.h"
18
18
#include " zenoh.hxx"
@@ -23,35 +23,37 @@ using namespace zenoh;
23
23
struct Stats {
24
24
volatile unsigned long count = 0 ;
25
25
volatile unsigned long finished_rounds = 0 ;
26
- volatile clock_t start = 0 ;
27
- volatile clock_t stop = 0 ;
28
- volatile clock_t end = 0 ;
29
- volatile clock_t first_start = 0 ;
26
+ std::chrono::steady_clock::time_point start = {};
27
+ std::chrono::steady_clock::time_point first_start = {};
28
+ std::chrono::steady_clock::time_point end = {};
30
29
31
30
void operator ()(const Sample &) {
32
31
if (count == 0 ) {
33
- start = clock ();
34
- if (! first_start) {
32
+ start = std::chrono::steady_clock::now ();
33
+ if (first_start == std::chrono::steady_clock::time_point () ) {
35
34
first_start = start;
36
35
}
37
36
count++;
38
37
} else if (count < N) {
39
38
count++;
40
39
} else {
41
- stop = clock ();
42
40
finished_rounds++;
43
- printf (" %f msg/s\n " , N * (double )CLOCKS_PER_SEC / (double )(stop - start));
41
+ auto elapsed_us =
42
+ std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::steady_clock::now () - start).count ();
43
+ std::cout << static_cast <double >(N) * 1000000.0 / static_cast <double >(elapsed_us) << " msg/s\n " ;
44
44
count = 0 ;
45
45
}
46
46
}
47
47
48
- void operator ()() { end = clock (); }
48
+ void operator ()() { end = std::chrono::steady_clock::now (); }
49
49
50
50
void print () const {
51
- const double elapsed = (double )(end - first_start) / (double )CLOCKS_PER_SEC;
51
+ auto elapsed_s =
52
+ static_cast <double >(std::chrono::duration_cast<std::chrono::microseconds>(end - first_start).count ()) /
53
+ 1000000.0 ;
52
54
const unsigned long sent_messages = N * finished_rounds + count;
53
- printf ( " Sent %ld messages over %f seconds (%f msg/s) \n " , sent_messages, elapsed,
54
- ( double ) sent_messages / elapsed) ;
55
+ std::cout << " Sent " << sent_messages << " messages over " << elapsed_s << " seconds ( "
56
+ << static_cast < double >( sent_messages) / elapsed_s << " msg/s) \n " ;
55
57
}
56
58
};
57
59
0 commit comments