Filbert v0.2.0 – performance improvement on decoding

Yan Cui

I help clients go faster for less using serverless technologies.

This article is brought to you by

Don’t reinvent the patterns. Catalyst gives you consistent APIs for messaging, data, and workflow with key microservice patterns like circuit-breakers and retries for free.

Try the Catalyst beta

Icon for package Filbert

Some time ago I put together a small BERT serializer and BERT-RPC client for .Net called Filbert (which is another name for Hazelnut, that has the word bert and the letter F and at the time every F# library has a leading F in its name!).

As an experimental project admittedly I hadn’t given too much thought to performance, and as you can see from below, the numbers don’t make for a flattering reading even against the BCL’s binary formatter!

I finally found some time to take a stab at improving the dreadful deserialization speed and with a couple of small changes I was able to halve the deserialization time for a very simple benchmark for a simple object, and there are still a couple of low hanging fruits that can improve things further.

image

The new version is up on Nuget so feel free to play around with it, and do let me know if you have any feedbacks and raise any issues or bugs on the Issues page for the project.

Whenever you’re ready, here are 3 ways I can help you:

  1. Production-Ready Serverless: Join 20+ AWS Heroes & Community Builders and 1000+ other students in levelling up your serverless game. This is your one-stop shop for quickly levelling up your serverless skills.
  2. I help clients launch product ideas, improve their development processes and upskill their teams. If you’d like to work together, then let’s get in touch.
  3. Join my community on Discord, ask questions, and join the discussion on all things AWS and Serverless.

2 thoughts on “Filbert v0.2.0 – performance improvement on decoding”

  1. Pingback: F# Weekly #2, 2014 | Sergey Tihon's Blog

  2. Pingback: Year in Review, 2014 | theburningmonk.com

Leave a Comment

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