Skip to content

Commit a5a4ae1

Browse files
committed
benchmarking
1 parent 2f4f584 commit a5a4ae1

7 files changed

Lines changed: 172 additions & 99 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ if(REFLECTCPP_BUILD_BENCHMARKS)
5656
set(REFLECTCPP_TOML ON CACHE BOOL "" FORCE)
5757
set(REFLECTCPP_UBJSON ON CACHE BOOL "" FORCE)
5858
set(REFLECTCPP_YAML ON CACHE BOOL "" FORCE)
59+
set(REFLECTCPP_BOOST_SERIALIZATION ON CACHE BOOL "" FORCE)
5960
endif()
6061

6162
if (REFLECTCPP_BUILD_TESTS OR REFLECTCPP_BUILD_BENCHMARKS OR REFLECTCPP_CHECK_HEADERS OR

benchmarks/all/canada_read.cpp

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <benchmark/benchmark.h>
22

33
#include <rfl/avro.hpp>
4+
#include <rfl/boost_serialization.hpp>
45
#include <rfl/bson.hpp>
56
#include <rfl/capnproto.hpp>
67
#include <rfl/cbor.hpp>
@@ -45,7 +46,7 @@ static FeatureCollection load_data() {
4546

4647
// ----------------------------------------------------------------------------
4748

48-
static void BM_canada_read_reflect_cpp_avro(benchmark::State &state) {
49+
static void BM_canada_read_reflect_cpp_avro(benchmark::State& state) {
4950
const auto schema = rfl::avro::to_schema<FeatureCollection>();
5051
const auto data = rfl::avro::write(load_data(), schema);
5152
for (auto _ : state) {
@@ -57,7 +58,7 @@ static void BM_canada_read_reflect_cpp_avro(benchmark::State &state) {
5758
}
5859
BENCHMARK(BM_canada_read_reflect_cpp_avro);
5960

60-
static void BM_canada_read_reflect_cpp_bson(benchmark::State &state) {
61+
static void BM_canada_read_reflect_cpp_bson(benchmark::State& state) {
6162
const auto data = rfl::bson::write(load_data());
6263
for (auto _ : state) {
6364
const auto res = rfl::bson::read<FeatureCollection>(data);
@@ -68,7 +69,19 @@ static void BM_canada_read_reflect_cpp_bson(benchmark::State &state) {
6869
}
6970
BENCHMARK(BM_canada_read_reflect_cpp_bson);
7071

71-
static void BM_canada_read_reflect_cpp_capnproto(benchmark::State &state) {
72+
static void BM_canada_read_reflect_cpp_boost_serialization(
73+
benchmark::State& state) {
74+
const auto data = rfl::boost_serialization::write(load_data());
75+
for (auto _ : state) {
76+
const auto res = rfl::boost_serialization::read<FeatureCollection>(data);
77+
if (!res) {
78+
std::cout << res.error().what() << std::endl;
79+
}
80+
}
81+
}
82+
BENCHMARK(BM_canada_read_reflect_cpp_boost_serialization);
83+
84+
static void BM_canada_read_reflect_cpp_capnproto(benchmark::State& state) {
7285
const auto schema = rfl::capnproto::to_schema<FeatureCollection>();
7386
const auto data = rfl::capnproto::write(load_data(), schema);
7487
for (auto _ : state) {
@@ -80,7 +93,7 @@ static void BM_canada_read_reflect_cpp_capnproto(benchmark::State &state) {
8093
}
8194
BENCHMARK(BM_canada_read_reflect_cpp_capnproto);
8295

83-
static void BM_canada_read_reflect_cpp_cbor(benchmark::State &state) {
96+
static void BM_canada_read_reflect_cpp_cbor(benchmark::State& state) {
8497
const auto data = rfl::cbor::write(load_data());
8598
for (auto _ : state) {
8699
const auto res = rfl::cbor::read<FeatureCollection>(data);
@@ -92,7 +105,7 @@ static void BM_canada_read_reflect_cpp_cbor(benchmark::State &state) {
92105
BENCHMARK(BM_canada_read_reflect_cpp_cbor);
93106

94107
static void BM_canada_read_reflect_cpp_cbor_without_field_names(
95-
benchmark::State &state) {
108+
benchmark::State& state) {
96109
const auto data = rfl::cbor::write<rfl::NoFieldNames>(load_data());
97110
for (auto _ : state) {
98111
const auto res =
@@ -104,7 +117,7 @@ static void BM_canada_read_reflect_cpp_cbor_without_field_names(
104117
}
105118
BENCHMARK(BM_canada_read_reflect_cpp_cbor_without_field_names);
106119

107-
static void BM_canada_read_reflect_cpp_flexbuf(benchmark::State &state) {
120+
static void BM_canada_read_reflect_cpp_flexbuf(benchmark::State& state) {
108121
const auto data = rfl::flexbuf::write(load_data());
109122
for (auto _ : state) {
110123
const auto res = rfl::flexbuf::read<FeatureCollection>(data);
@@ -116,7 +129,7 @@ static void BM_canada_read_reflect_cpp_flexbuf(benchmark::State &state) {
116129
BENCHMARK(BM_canada_read_reflect_cpp_flexbuf);
117130

118131
static void BM_canada_read_reflect_cpp_flexbuf_without_field_names(
119-
benchmark::State &state) {
132+
benchmark::State& state) {
120133
const auto data = rfl::flexbuf::write<rfl::NoFieldNames>(load_data());
121134
for (auto _ : state) {
122135
const auto res =
@@ -128,7 +141,7 @@ static void BM_canada_read_reflect_cpp_flexbuf_without_field_names(
128141
}
129142
BENCHMARK(BM_canada_read_reflect_cpp_flexbuf_without_field_names);
130143

131-
static void BM_canada_read_reflect_cpp_json(benchmark::State &state) {
144+
static void BM_canada_read_reflect_cpp_json(benchmark::State& state) {
132145
const auto data = rfl::json::write(load_data());
133146
for (auto _ : state) {
134147
const auto res = rfl::json::read<FeatureCollection>(data);
@@ -140,7 +153,7 @@ static void BM_canada_read_reflect_cpp_json(benchmark::State &state) {
140153
BENCHMARK(BM_canada_read_reflect_cpp_json);
141154

142155
static void BM_canada_read_reflect_cpp_json_without_field_names(
143-
benchmark::State &state) {
156+
benchmark::State& state) {
144157
const auto data = rfl::json::write<rfl::NoFieldNames>(load_data());
145158
for (auto _ : state) {
146159
const auto res =
@@ -152,7 +165,7 @@ static void BM_canada_read_reflect_cpp_json_without_field_names(
152165
}
153166
BENCHMARK(BM_canada_read_reflect_cpp_json_without_field_names);
154167

155-
static void BM_canada_read_reflect_cpp_msgpack(benchmark::State &state) {
168+
static void BM_canada_read_reflect_cpp_msgpack(benchmark::State& state) {
156169
const auto data = rfl::msgpack::write(load_data());
157170
for (auto _ : state) {
158171
const auto res = rfl::msgpack::read<FeatureCollection>(data);
@@ -164,7 +177,7 @@ static void BM_canada_read_reflect_cpp_msgpack(benchmark::State &state) {
164177
BENCHMARK(BM_canada_read_reflect_cpp_msgpack);
165178

166179
static void BM_canada_read_reflect_cpp_msgpack_without_field_names(
167-
benchmark::State &state) {
180+
benchmark::State& state) {
168181
const auto data = rfl::msgpack::write<rfl::NoFieldNames>(load_data());
169182
for (auto _ : state) {
170183
const auto res =
@@ -176,7 +189,7 @@ static void BM_canada_read_reflect_cpp_msgpack_without_field_names(
176189
}
177190
BENCHMARK(BM_canada_read_reflect_cpp_msgpack_without_field_names);
178191

179-
static void BM_canada_read_reflect_cpp_toml(benchmark::State &state) {
192+
static void BM_canada_read_reflect_cpp_toml(benchmark::State& state) {
180193
const auto data = rfl::toml::write(load_data());
181194
for (auto _ : state) {
182195
const auto res = rfl::toml::read<FeatureCollection>(data);
@@ -187,7 +200,7 @@ static void BM_canada_read_reflect_cpp_toml(benchmark::State &state) {
187200
}
188201
BENCHMARK(BM_canada_read_reflect_cpp_toml);
189202

190-
static void BM_canada_read_reflect_cpp_ubjson(benchmark::State &state) {
203+
static void BM_canada_read_reflect_cpp_ubjson(benchmark::State& state) {
191204
const auto data = rfl::ubjson::write(load_data());
192205
for (auto _ : state) {
193206
const auto res = rfl::ubjson::read<FeatureCollection>(data);
@@ -199,7 +212,7 @@ static void BM_canada_read_reflect_cpp_ubjson(benchmark::State &state) {
199212
BENCHMARK(BM_canada_read_reflect_cpp_ubjson);
200213

201214
static void BM_canada_read_reflect_cpp_ubjson_without_field_names(
202-
benchmark::State &state) {
215+
benchmark::State& state) {
203216
const auto data = rfl::ubjson::write<rfl::NoFieldNames>(load_data());
204217
for (auto _ : state) {
205218
const auto res =
@@ -211,7 +224,7 @@ static void BM_canada_read_reflect_cpp_ubjson_without_field_names(
211224
}
212225
BENCHMARK(BM_canada_read_reflect_cpp_ubjson_without_field_names);
213226

214-
static void BM_canada_read_reflect_cpp_yaml(benchmark::State &state) {
227+
static void BM_canada_read_reflect_cpp_yaml(benchmark::State& state) {
215228
const auto data = rfl::yaml::write(load_data());
216229
for (auto _ : state) {
217230
const auto res = rfl::yaml::read<FeatureCollection>(data);
@@ -225,4 +238,3 @@ BENCHMARK(BM_canada_read_reflect_cpp_yaml);
225238
// ----------------------------------------------------------------------------
226239

227240
} // namespace canada_read
228-

benchmarks/all/canada_write.cpp

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <benchmark/benchmark.h>
22

33
#include <rfl/avro.hpp>
4+
#include <rfl/boost_serialization.hpp>
45
#include <rfl/bson.hpp>
56
#include <rfl/capnproto.hpp>
67
#include <rfl/cbor.hpp>
@@ -45,7 +46,7 @@ static FeatureCollection load_data() {
4546

4647
// ----------------------------------------------------------------------------
4748

48-
static void BM_canada_write_reflect_cpp_avro(benchmark::State &state) {
49+
static void BM_canada_write_reflect_cpp_avro(benchmark::State& state) {
4950
const auto schema = rfl::avro::to_schema<FeatureCollection>();
5051
const auto data = load_data();
5152
for (auto _ : state) {
@@ -57,7 +58,7 @@ static void BM_canada_write_reflect_cpp_avro(benchmark::State &state) {
5758
}
5859
BENCHMARK(BM_canada_write_reflect_cpp_avro);
5960

60-
static void BM_canada_write_reflect_cpp_bson(benchmark::State &state) {
61+
static void BM_canada_write_reflect_cpp_bson(benchmark::State& state) {
6162
const auto data = load_data();
6263
for (auto _ : state) {
6364
const auto output = rfl::bson::write(data);
@@ -68,7 +69,19 @@ static void BM_canada_write_reflect_cpp_bson(benchmark::State &state) {
6869
}
6970
BENCHMARK(BM_canada_write_reflect_cpp_bson);
7071

71-
static void BM_canada_write_reflect_cpp_capnproto(benchmark::State &state) {
72+
static void BM_canada_write_reflect_cpp_boost_serialization(
73+
benchmark::State& state) {
74+
const auto data = load_data();
75+
for (auto _ : state) {
76+
const auto output = rfl::boost_serialization::write(data);
77+
if (output.size() == 0) {
78+
std::cout << "No output" << std::endl;
79+
}
80+
}
81+
}
82+
BENCHMARK(BM_canada_write_reflect_cpp_boost_serialization);
83+
84+
static void BM_canada_write_reflect_cpp_capnproto(benchmark::State& state) {
7285
const auto schema = rfl::capnproto::to_schema<FeatureCollection>();
7386
const auto data = load_data();
7487
for (auto _ : state) {
@@ -80,7 +93,7 @@ static void BM_canada_write_reflect_cpp_capnproto(benchmark::State &state) {
8093
}
8194
BENCHMARK(BM_canada_write_reflect_cpp_capnproto);
8295

83-
static void BM_canada_write_reflect_cpp_cbor(benchmark::State &state) {
96+
static void BM_canada_write_reflect_cpp_cbor(benchmark::State& state) {
8497
const auto data = load_data();
8598
for (auto _ : state) {
8699
const auto output = rfl::cbor::write(data);
@@ -92,7 +105,7 @@ static void BM_canada_write_reflect_cpp_cbor(benchmark::State &state) {
92105
BENCHMARK(BM_canada_write_reflect_cpp_cbor);
93106

94107
static void BM_canada_write_reflect_cpp_cbor_without_field_names(
95-
benchmark::State &state) {
108+
benchmark::State& state) {
96109
const auto data = load_data();
97110
for (auto _ : state) {
98111
const auto output = rfl::cbor::write<rfl::NoFieldNames>(data);
@@ -104,7 +117,7 @@ static void BM_canada_write_reflect_cpp_cbor_without_field_names(
104117
BENCHMARK(BM_canada_write_reflect_cpp_cbor_without_field_names);
105118

106119
static void BM_canada_write_reflect_cpp_flexbuf_without_field_names(
107-
benchmark::State &state) {
120+
benchmark::State& state) {
108121
const auto data = load_data();
109122
for (auto _ : state) {
110123
const auto output = rfl::flexbuf::write<rfl::NoFieldNames>(data);
@@ -115,7 +128,7 @@ static void BM_canada_write_reflect_cpp_flexbuf_without_field_names(
115128
}
116129
BENCHMARK(BM_canada_write_reflect_cpp_flexbuf_without_field_names);
117130

118-
static void BM_canada_write_reflect_cpp_json(benchmark::State &state) {
131+
static void BM_canada_write_reflect_cpp_json(benchmark::State& state) {
119132
const auto data = load_data();
120133
for (auto _ : state) {
121134
const auto output = rfl::json::write(data);
@@ -127,7 +140,7 @@ static void BM_canada_write_reflect_cpp_json(benchmark::State &state) {
127140
BENCHMARK(BM_canada_write_reflect_cpp_json);
128141

129142
static void BM_canada_write_reflect_cpp_json_without_field_names(
130-
benchmark::State &state) {
143+
benchmark::State& state) {
131144
const auto data = load_data();
132145
for (auto _ : state) {
133146
const auto output = rfl::json::write<rfl::NoFieldNames>(data);
@@ -138,7 +151,7 @@ static void BM_canada_write_reflect_cpp_json_without_field_names(
138151
}
139152
BENCHMARK(BM_canada_write_reflect_cpp_json_without_field_names);
140153

141-
static void BM_canada_write_reflect_cpp_msgpack(benchmark::State &state) {
154+
static void BM_canada_write_reflect_cpp_msgpack(benchmark::State& state) {
142155
const auto data = load_data();
143156
for (auto _ : state) {
144157
const auto output = rfl::msgpack::write(data);
@@ -150,7 +163,7 @@ static void BM_canada_write_reflect_cpp_msgpack(benchmark::State &state) {
150163
BENCHMARK(BM_canada_write_reflect_cpp_msgpack);
151164

152165
static void BM_canada_write_reflect_cpp_msgpack_without_field_names(
153-
benchmark::State &state) {
166+
benchmark::State& state) {
154167
const auto data = load_data();
155168
for (auto _ : state) {
156169
const auto output = rfl::msgpack::write<rfl::NoFieldNames>(data);
@@ -161,7 +174,7 @@ static void BM_canada_write_reflect_cpp_msgpack_without_field_names(
161174
}
162175
BENCHMARK(BM_canada_write_reflect_cpp_msgpack_without_field_names);
163176

164-
static void BM_canada_write_reflect_cpp_toml(benchmark::State &state) {
177+
static void BM_canada_write_reflect_cpp_toml(benchmark::State& state) {
165178
const auto data = load_data();
166179
for (auto _ : state) {
167180
const auto output = rfl::toml::write(data);
@@ -172,7 +185,7 @@ static void BM_canada_write_reflect_cpp_toml(benchmark::State &state) {
172185
}
173186
BENCHMARK(BM_canada_write_reflect_cpp_toml);
174187

175-
static void BM_canada_write_reflect_cpp_ubjson(benchmark::State &state) {
188+
static void BM_canada_write_reflect_cpp_ubjson(benchmark::State& state) {
176189
const auto data = load_data();
177190
for (auto _ : state) {
178191
const auto output = rfl::ubjson::write(data);
@@ -184,7 +197,7 @@ static void BM_canada_write_reflect_cpp_ubjson(benchmark::State &state) {
184197
BENCHMARK(BM_canada_write_reflect_cpp_ubjson);
185198

186199
static void BM_canada_write_reflect_cpp_ubjson_without_field_names(
187-
benchmark::State &state) {
200+
benchmark::State& state) {
188201
const auto data = load_data();
189202
for (auto _ : state) {
190203
const auto output = rfl::ubjson::write<rfl::NoFieldNames>(data);
@@ -195,7 +208,7 @@ static void BM_canada_write_reflect_cpp_ubjson_without_field_names(
195208
}
196209
BENCHMARK(BM_canada_write_reflect_cpp_ubjson_without_field_names);
197210

198-
static void BM_canada_write_reflect_cpp_yaml(benchmark::State &state) {
211+
static void BM_canada_write_reflect_cpp_yaml(benchmark::State& state) {
199212
const auto data = load_data();
200213
for (auto _ : state) {
201214
const auto output = rfl::yaml::write(data);
@@ -209,4 +222,3 @@ BENCHMARK(BM_canada_write_reflect_cpp_yaml);
209222
// ----------------------------------------------------------------------------
210223

211224
} // namespace canada_write
212-

0 commit comments

Comments
 (0)