@@ -29,23 +29,24 @@ void bench(const char* path) {
2929 in.read (&s[0 ], s.size ());
3030 in.close ();
3131 auto c_str = s.c_str ();
32+ auto bytes = s.size ();
3233
3334 Timer timer;
3435
3536 {
36- auto min = std::numeric_limits<float >::infinity () ;
37+ std::chrono::microseconds min{ std::numeric_limits<std::chrono::microseconds::rep >::max ()} ;
3738 for (int i = 0 ; i < 256 ; i++) {
3839 rapidjson::Document d;
3940 timer.reset ();
4041 d.Parse (c_str);
4142 assert (!d.HasParseError ());
42- min = std::min (min, timer.millis ());
43+ min = std::min (min, timer.micros ());
4344 }
44- std::cout << path << " parse dom: " << min << " ms " << std::endl;
45+ std::cout << path << " parse dom: " << throughput ( min, bytes) << " MB/s " << std::endl;
4546 }
4647
4748 {
48- auto min = std::numeric_limits<float >::infinity () ;
49+ std::chrono::microseconds min{ std::numeric_limits<std::chrono::microseconds::rep >::max ()} ;
4950 rapidjson::Document d;
5051 d.Parse (c_str);
5152 assert (!d.HasParseError ());
@@ -56,13 +57,13 @@ void bench(const char* path) {
5657 timer.reset ();
5758 auto result = d.Accept (writer);
5859 assert (result);
59- min = std::min (min, timer.millis ());
60+ min = std::min (min, timer.micros ());
6061 }
61- std::cout << path << " stringify dom: " << min << " ms " << std::endl;
62+ std::cout << path << " stringify dom: " << throughput ( min, bytes) << " MB/s " << std::endl;
6263 }
6364
6465 {
65- auto min = std::numeric_limits<float >::infinity () ;
66+ std::chrono::microseconds min{ std::numeric_limits<std::chrono::microseconds::rep >::max ()} ;
6667 for (int i = 0 ; i < 256 ; i++) {
6768 rapidjson::Reader reader;
6869 Handler handler;
@@ -79,13 +80,13 @@ void bench(const char* path) {
7980#endif
8081 assert (result);
8182 auto keep = handler.Get ();
82- min = std::min (min, timer.millis ());
83+ min = std::min (min, timer.micros ());
8384 }
84- std::cout << path << " parse struct: " << min << " ms " << std::endl;
85+ std::cout << path << " parse struct: " << throughput ( min, bytes) << " MB/s " << std::endl;
8586 }
8687
8788 {
88- auto min = std::numeric_limits<float >::infinity () ;
89+ std::chrono::microseconds min{ std::numeric_limits<std::chrono::microseconds::rep >::max ()} ;
8990 rapidjson::Reader reader;
9091 Handler handler;
9192 rapidjson::StringStream ss (c_str);
@@ -99,9 +100,9 @@ void bench(const char* path) {
99100 rapidjson::Writer<rapidjson::StringBuffer> writer (sb);
100101 timer.reset ();
101102 Serialize (d, writer);
102- min = std::min (min, timer.millis ());
103+ min = std::min (min, timer.micros ());
103104 }
104- std::cout << path << " stringify struct: " << min << " ms " << std::endl;
105+ std::cout << path << " stringify struct: " << throughput ( min, bytes) << " MB/s " << std::endl;
105106 }
106107}
107108
0 commit comments