Performance benchmarks updated

I recently reorganized the SimpleSpeedTester project’s structure so that it’s easier to add tests to both the Json and binary serializer benchmarks, and to run the tests is as easy as running the RunBenchmarks.fsx F# script and then choosing which benchmark you’d like to run and then kick back and wait for the results to come back.

 

DISCLAIMER : as always, you should be 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 this exam­ple code for my JSON seri­al­izer tests to bench­mark against your par­tic­u­lar payload.

 

Binary Serializers

image

image

Versions tested:

 

JSON Serializers

System.Json has been added to the list of serializers thanks to Mauricio’s pull-request.

image

image

P.S. protobuf-net is NOT a JSON serializer, but it’s in the mix here simply as a benchmark since it’s one of the more widely used and fastest serializers around, and useful to compare the BSON serializers in the list.

 

Versions tested:

 

Since I started doing these benchmarks more than two years ago, I have been impressed by the way Json.Net upped its game since those early benchmarks! Long may the healthy competition lasts between these JSON serializer heavyweights so that rest of us can simply reap the benefits of the great work guys like Demis Bellot and James Newton-King are doing in providing essential tooling in this space!

  • Pingback: F# Weekly #5, 2014 | Sergey Tihon's Blog()

  • David

    Can FsPickler be added?

  • theburningmonk

    @David – sure, I’ll add it to the binary serializers test, been on my list for a while just haven’t got around to it.

  • David

    That would be great thank you, will all come in handy soon.

  • http://www.ffconsultancy.com Jon Harrop

    Would be interesting to compare with OCaml. Last I looked, OCaml was orders of magnitude faster than .NET at serialization.

  • theburningmonk

    @Jon – I’ve not looked at OCaml at all, what is it about OCaml that makes serialization so much faster?

    Is the order of magnitude difference you mentioned specifically referring to the built-in serializers in OCaml vs .Net? Some of the open source serializers in .Net are doing a really good job of beating the BCL serializers.