Skip to content

Latest commit

 

History

History
49 lines (41 loc) · 3.47 KB

File metadata and controls

49 lines (41 loc) · 3.47 KB

SchemalessSerializationBenchmark

Benchmarks of various Schemaless Serialization formats and libraries

Referenced in the post https://leecampbell.com/2017/10/04/eventsourcing-with-messagepack-instead-of-json/

Benchmark takes about 8min to run and produces results similar to the following

BenchmarkDotNet=v0.10.9, OS=Windows 10 Threshold 2 (10.0.10586)
Processor=Intel Core i5-4690 CPU 3.50GHz (Haswell), ProcessorCount=4
Frequency=3410090 Hz, Resolution=293.2474 ns, Timer=TSC
  [Host] : .NET Framework 4.6.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.6.1590.0
  Clr    : .NET Framework 4.6.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.6.1590.0
  Core   : .NET Core 1.1.2 (Framework 4.6.25211.01), 64bit RyuJIT

Method Job Runtime Mean Error StdDev Scaled
Json_TypeDeseralization Clr Clr 149.696 us 0.5023 us 0.4453 us 1.00
Json_JObjectDeseralization Clr Clr 115.874 us 0.7197 us 0.6732 us 0.77
Json_ProxyTypeDeseralization Clr Clr 50.584 us 0.2629 us 0.2459 us 0.34
Bson_TypeDeseralization Clr Clr 193.824 us 1.0551 us 0.9869 us 1.29
Bson_ProxyTypeDeseralization Clr Clr 57.429 us 0.4736 us 0.4430 us 0.38
MsgPackCli_TypeDeseralization Clr Clr 93.432 us 0.3112 us 0.2759 us 0.62
MsgPackCli_ProxyTypeDeseralization Clr Clr 44.810 us 0.3619 us 0.3208 us 0.30
MessagePack_TypeDeseralization Clr Clr 28.034 us 0.2316 us 0.2167 us 0.19
MessagePack_ProxyTypeDeseralization Clr Clr 4.728 us 0.0313 us 0.0293 us 0.03
MessagePackLz4_TypeDeseralization Clr Clr 27.947 us 0.1191 us 0.1056 us 0.19
MessagePackLz4_ProxyTypeDeseralization Clr Clr 4.384 us 0.0359 us 0.0336 us 0.03
Json_TypeDeseralization Core Core 158.694 us 1.3418 us 1.2551 us 1.00
Json_JObjectDeseralization Core Core 117.989 us 0.6825 us 0.6051 us 0.74
Json_ProxyTypeDeseralization Core Core 50.296 us 0.3407 us 0.3020 us 0.32
Bson_TypeDeseralization Core Core 178.498 us 2.1330 us 1.9952 us 1.12
Bson_ProxyTypeDeseralization Core Core 62.148 us 0.3210 us 0.3002 us 0.39
MsgPackCli_TypeDeseralization Core Core 185.956 us 1.9603 us 1.8337 us 1.17
MsgPackCli_ProxyTypeDeseralization Core Core 46.308 us 0.2335 us 0.2184 us 0.29
MessagePack_TypeDeseralization Core Core 27.700 us 0.2655 us 0.2484 us 0.17
MessagePack_ProxyTypeDeseralization Core Core 4.632 us 0.0186 us 0.0174 us 0.03
MessagePackLz4_TypeDeseralization Core Core 28.309 us 0.1192 us 0.1115 us 0.18
MessagePackLz4_ProxyTypeDeseralization Core Core 4.291 us 0.0448 us 0.0419 us 0.03

Currently shows that
 * the https://www.nuget.org/packages/MessagePack library is the fastest
 * you dont have to pay a high cost for compression and decompression
 * only deserializing the properties you need can have a significant impact on performance