Binary and Json benchmarks updated

Presently sponsored by Serverless Guru: Your guide to cloud excellence, helping you every step of your serverless journey, including team training, pattern development, mass service migrations, architecting, and developing new solutions. Speak to a Guru today.

It’s been a while since I last updated my binary and JSON serializer benchmarks, so here I round up the latest versions of the serializers on here.

 

DISCLAIMER : as always, you should bench­mark against your pay­load and use case, the bench­mark num­bers I have pro­duced here is unlikely to be rep­re­sen­ta­tive of your use cases and nei­ther is any­body else’s bench­mark numbers.

You can use the sim­ple test har­ness I cre­ated and see these exam­ple code to bench­mark against your par­tic­u­lar payload.

 

Binary

Only FsPickler was updated for this benchmark so there are no significant changes in numbers here (with the exception of the BinaryWriter!).

image

image

 

JSON

Quite a few of the JSON serializers have been updated:

  • FsPickler
  • Jil
  • MongoDB Driver
  • NetJson
  • Newtonsoft.Json (aka Json.Net)
  • ServiceStack.Text

Jil seems to have made the biggest gains since the last time.

image

image

*protobuf-net is in this list purely as a benchmark to show how the test JSON serializers compare to one of the fastest binary serializers (both in terms of speed and payload size)

5 thoughts on “Binary and Json benchmarks updated”

  1. Pingback: MS Bond and Chiron benchmarked | theburningmonk.com

  2. I’ve used this article many times to advocate for “performance as a feature” to companies. At this point the article is a year and a half out of date, and many of these libraries have had multiple updates (ex: NetJSON has had over 20)…. any chance you could re-run these tests with the latest and publish?

  3. theburningmonk

    Hi Travis, sure thing. I have been away from the .Net world for about a year now hence the lack of update here, apologies.

    I’ll put some time aside later this week to get these benchmarks updated. You should also take a look at Matt Warren’s BenchmarkDotNet library which is a very powerful tool for running benchmarks yourself and it spits out a bunch of useful metrics which I’m not able to capture with my simple benchmarks.

Leave a Comment

Your email address will not be published. Required fields are marked *