@@ -29,23 +29,24 @@ void bench(const char* path) {
29
29
in.read (&s[0 ], s.size ());
30
30
in.close ();
31
31
auto c_str = s.c_str ();
32
+ auto bytes = s.size ();
32
33
33
34
Timer timer;
34
35
35
36
{
36
- auto min = std::numeric_limits<float >::infinity () ;
37
+ std::chrono::microseconds min{ std::numeric_limits<std::chrono::microseconds::rep >::max ()} ;
37
38
for (int i = 0 ; i < 256 ; i++) {
38
39
rapidjson::Document d;
39
40
timer.reset ();
40
41
d.Parse (c_str);
41
42
assert (!d.HasParseError ());
42
- min = std::min (min, timer.millis ());
43
+ min = std::min (min, timer.micros ());
43
44
}
44
- std::cout << path << " parse dom: " << min << " ms " << std::endl;
45
+ std::cout << path << " parse dom: " << throughput ( min, bytes) << " MB/s " << std::endl;
45
46
}
46
47
47
48
{
48
- auto min = std::numeric_limits<float >::infinity () ;
49
+ std::chrono::microseconds min{ std::numeric_limits<std::chrono::microseconds::rep >::max ()} ;
49
50
rapidjson::Document d;
50
51
d.Parse (c_str);
51
52
assert (!d.HasParseError ());
@@ -56,13 +57,13 @@ void bench(const char* path) {
56
57
timer.reset ();
57
58
auto result = d.Accept (writer);
58
59
assert (result);
59
- min = std::min (min, timer.millis ());
60
+ min = std::min (min, timer.micros ());
60
61
}
61
- std::cout << path << " stringify dom: " << min << " ms " << std::endl;
62
+ std::cout << path << " stringify dom: " << throughput ( min, bytes) << " MB/s " << std::endl;
62
63
}
63
64
64
65
{
65
- auto min = std::numeric_limits<float >::infinity () ;
66
+ std::chrono::microseconds min{ std::numeric_limits<std::chrono::microseconds::rep >::max ()} ;
66
67
for (int i = 0 ; i < 256 ; i++) {
67
68
rapidjson::Reader reader;
68
69
Handler handler;
@@ -79,13 +80,13 @@ void bench(const char* path) {
79
80
#endif
80
81
assert (result);
81
82
auto keep = handler.Get ();
82
- min = std::min (min, timer.millis ());
83
+ min = std::min (min, timer.micros ());
83
84
}
84
- std::cout << path << " parse struct: " << min << " ms " << std::endl;
85
+ std::cout << path << " parse struct: " << throughput ( min, bytes) << " MB/s " << std::endl;
85
86
}
86
87
87
88
{
88
- auto min = std::numeric_limits<float >::infinity () ;
89
+ std::chrono::microseconds min{ std::numeric_limits<std::chrono::microseconds::rep >::max ()} ;
89
90
rapidjson::Reader reader;
90
91
Handler handler;
91
92
rapidjson::StringStream ss (c_str);
@@ -99,9 +100,9 @@ void bench(const char* path) {
99
100
rapidjson::Writer<rapidjson::StringBuffer> writer (sb);
100
101
timer.reset ();
101
102
Serialize (d, writer);
102
- min = std::min (min, timer.millis ());
103
+ min = std::min (min, timer.micros ());
103
104
}
104
- std::cout << path << " stringify struct: " << min << " ms " << std::endl;
105
+ std::cout << path << " stringify struct: " << throughput ( min, bytes) << " MB/s " << std::endl;
105
106
}
106
107
}
107
108
0 commit comments