@@ -140,6 +140,46 @@ BENCHMARK_CAPTURE(ToCbor, signed_ints, TEST_DATA_DIRECTORY "/regression/si
140
140
BENCHMARK_CAPTURE (ToCbor, unsigned_ints, TEST_DATA_DIRECTORY " /regression/unsigned_ints.json" );
141
141
BENCHMARK_CAPTURE (ToCbor, small_signed_ints, TEST_DATA_DIRECTORY " /regression/small_signed_ints.json" );
142
142
143
+ // ////////////////////////////////////////////////////////////////////////////
144
+ // Parse Msgpack
145
+ // ////////////////////////////////////////////////////////////////////////////
146
+
147
+ static void FromMsgpack (benchmark::State& state, const char * filename)
148
+ {
149
+ std::ifstream f (filename);
150
+ std::string str ((std::istreambuf_iterator<char >(f)), std::istreambuf_iterator<char >());
151
+ auto bytes = json::to_msgpack (json::parse (str));
152
+ std::ofstream o (" test.msgpack" );
153
+ o.write ((char *)bytes.data (), bytes.size ());
154
+ o.flush ();
155
+ o.close ();
156
+ for (auto _ : state)
157
+ {
158
+ state.PauseTiming ();
159
+ auto * j = new json ();
160
+ auto file = fopen (" test.msgpack" , " rb" );
161
+ state.ResumeTiming ();
162
+
163
+ *j = json::from_msgpack (file);
164
+
165
+ state.PauseTiming ();
166
+ fclose (file);
167
+ delete j;
168
+ state.ResumeTiming ();
169
+ }
170
+
171
+ state.SetBytesProcessed (state.iterations () * bytes.size ());
172
+ }
173
+
174
+ BENCHMARK_CAPTURE (FromMsgpack, jeopardy, TEST_DATA_DIRECTORY " /jeopardy/jeopardy.json" );
175
+ BENCHMARK_CAPTURE (FromMsgpack, canada, TEST_DATA_DIRECTORY " /nativejson-benchmark/canada.json" );
176
+ BENCHMARK_CAPTURE (FromMsgpack, citm_catalog, TEST_DATA_DIRECTORY " /nativejson-benchmark/citm_catalog.json" );
177
+ BENCHMARK_CAPTURE (FromMsgpack, twitter, TEST_DATA_DIRECTORY " /nativejson-benchmark/twitter.json" );
178
+ BENCHMARK_CAPTURE (FromMsgpack, floats, TEST_DATA_DIRECTORY " /regression/floats.json" );
179
+ BENCHMARK_CAPTURE (FromMsgpack, signed_ints, TEST_DATA_DIRECTORY " /regression/signed_ints.json" );
180
+ BENCHMARK_CAPTURE (FromMsgpack, unsigned_ints, TEST_DATA_DIRECTORY " /regression/unsigned_ints.json" );
181
+ BENCHMARK_CAPTURE (FromMsgpack, small_signed_ints, TEST_DATA_DIRECTORY " /regression/small_signed_ints.json" );
182
+
143
183
// ////////////////////////////////////////////////////////////////////////////
144
184
// serialize binary CBOR
145
185
// ////////////////////////////////////////////////////////////////////////////
0 commit comments