cpp-serializers
cpp-serializers copied to clipboard
Added zpp serialization library.
Results (excluding thrift which doesn't compile on my distribution):
$ ./benchmark 300000
performing 300000 iterations
protobuf: version = 3001000
protobuf: size = 16116 bytes
protobuf: time = 5878 milliseconds
capnproto: version = 6001
capnproto: size = 17768 bytes
capnproto: time = 1182 milliseconds
boost: version = 106200
boost: size = 17470 bytes
boost: time = 2915 milliseconds
msgpack: version = 2.1.3
msgpack: size = 13402 bytes
msgpack: time = 9494 milliseconds
cereal: size = 17416 bytes
cereal: time = 2321 milliseconds
avro: size = 16384 bytes
avro: time = 11097 milliseconds
flatbuffers: size = 17632 bytes
flatbuffers: time = 1000 milliseconds
yas: version = 6.0.2
yas: size = 17416 bytes
yas: time = 780 milliseconds
yas-compact: version = 6.0.2
yas-compact: size = 13321 bytes
yas-compact: time = 5971 milliseconds
zpp: version = v0.1
zpp: size = 17008 bytes
zpp: time = 598 milliseconds
$ ./benchmark 1000000
performing 1000000 iterations
protobuf: version = 3001000
protobuf: size = 16116 bytes
protobuf: time = 19182 milliseconds
capnproto: version = 6001
capnproto: size = 17768 bytes
capnproto: time = 3735 milliseconds
boost: version = 106200
boost: size = 17470 bytes
boost: time = 9969 milliseconds
msgpack: version = 2.1.3
msgpack: size = 13402 bytes
msgpack: time = 32170 milliseconds
cereal: size = 17416 bytes
cereal: time = 7550 milliseconds
avro: size = 16384 bytes
avro: time = 35806 milliseconds
flatbuffers: size = 17632 bytes
flatbuffers: time = 3257 milliseconds
yas: version = 6.0.2
yas: size = 17416 bytes
yas: time = 2575 milliseconds
yas-compact: version = 6.0.2
yas-compact: size = 13321 bytes
yas-compact: time = 19590 milliseconds
zpp: version = v0.1
zpp: size = 17008 bytes
zpp: time = 1949 milliseconds
Remark: seems that yas is wrongly tested, because it has no opportunity to reserve memory as all other tests do, I made also a test that does not reserve memory and got the following results, for a fair comparison with yas:
$ ./benchmark 300000
performing 300000 iterations
zpp: version = v0.1
zpp: size = 17008 bytes
zpp: time = 712 milliseconds
$ ./benchmark 1000000
performing 1000000 iterations
zpp: version = v0.1
zpp: size = 17008 bytes
zpp: time = 2344 milliseconds
@thekvs is there any chance we can pull this in?
Hi @eyalz800!
Sorry, I don't have resources to include and maintain every possible C++ serializer in the world, there are dozens of them (maybe even more). I try to keep in benchmark only a major and widespread one. I suggest you to maintain your own fork. Also I can reference your serializer in the README.
@thekvs that's fair. I was just trying to show up in your benchmark main page, I thought that the project is fairly inactive for long periods of time and I didn't know that adding my library will use much resources. Thank you