CLR Serializer Benchmark Suite

SERBENCH Results Page

We will publish test runs here


We are separating WARMUP test cases with subsequent tests. While comparing results, make sure you compare warmup to warmup, and runs to runs not vice-versa!

Some serializers just do not work - they even crash the process without any exception (looks like unmanaged code problem). MsgShark does it sometimes. See the ABORTED list after the main report.

Typical Person

The "Typical Person" is a linear class without any child references. Here is the code
What we wanted to emulate is a "typical person data", like name, addresses some phones and flags.
Typical Person Benchmark Charts
Typical Person Benchmark Table
Tested Serializers Information

Message Batching

In the batching mode we keep writing may instances into the same stream as a "batch". Imagine a socket where the server keeps pushing data and client keeps receiving. That simple. The stream does not end. The problem is: only Protobuf, NFX Slim and MS Binary Formatter can read from stream one chunk after another, all others fail as they keep reading stream till the end. Here is the code
Batching Benchmark Charts
Batching Benchmark Table

Entangled Object Graph

We are creating a set of conferences, participants etc.. and entangle them to the hell out... Protobuf works in a "IsReference" mode, as provided by Marc's lib. Notice the sizes. Keep in mind that only Ms Binary Formatter and NFX Slim understand true polymorphism, so this test is skewed towards non-clr-native serializers. Here is the code
Object Graph Benchmark Charts
Object Graph Benchmark Table

EDI X12 835 Government Data

We have spent some time reproducing some government-required EDI X12 data I am sure everyone loves this stuff:):) What can you do? This is life, EDI is used in many places....for another 100 years? ... so for those who know what HIPA EDI 837 Health Care Claim 837 and Electronic Remittance Advice 835 are... Here is the code
EDI 835 Benchmark Charts
EDI 835 Benchmark Table