In the previous post I shared information related to a project I'm spending my spare time on. It's Enzyme, a new serializer for modern .NET. It's not OSSed yet, but still, I wanted to share some finding and improvements (yep, it can be even better). In this post I'll one optimization that I made that … Continue reading Enzyme: digesting even faster
There's a lot of serializers on .NET market. Some of them have cross-platform support some of them not. There's one thing that is a foundation of a good serializer: it must be fast. Recently, I spent some time on extracting a piece that was in some sense a serializer and finally has become one. After … Continue reading Enzyme: an experimental serializer for modern .NET
The misconception that fast code must be ugly is unfortunately still alive. Also, there is an anti-pattern, of leaving the performance related work till the end, when nothing can be changed. Fortunately, there's a lot of people writing code that is fast and easy to follow. In this post I want to discuss hot paths, … Continue reading Hot paths in performance design
This post describes my work on trying to build a faster MemoryPool for .NET called Thruster. There are existing implementations, like the one provided by System.Memory or Kestrel, the new and shiny .NET web server. Let's see what approached did I take and how it ended. What is a MemoryPool? The memory pool is a … Continue reading Thruster, building a not so fast memory pool
TL;DR I'm working currently on SewingMachine, an OSS project of mine, that is aimed at unleashing the ultimate performance for your stateful services written in/for Service Fabric (more posts: here). In this post I'm testing further (previous test is here) whether it would be beneficial to write a custom unmanaged writer for protobuf-net using stackallocked … Continue reading ProtobufRaw vs protobuf-net
TL;DR I'm working currently on SewingMachine, an OSS project of mine, that is aimed at unleashing the ultimate performance for your stateful services written in/for Service Fabric (more posts: here). In this post I'm testing whether it would be beneficial to write a custom unmanaged writer for protobuf-net, instead of using some kind of object … Continue reading ThreadStatic vs stackalloc
This is a follow-up post about Marten's performance. It shows that saved allocations are not only about allocations and memory. It's also about you CPU ticks, hence the speed of your library.