Digests » 330

this week's favorite

Finding that C# memory leak

Last week it finally happened, I saw my first memory leak in production - that I know of - and over time it was eating up all the memory. Throughout my career, I've been warned, and I've warned about these leaks and why it's so important to release unmanaged resources with the Dispose method. Yet, we still created a memory leak.

.NET Performance Optimisations Don’t Have to be Complex

In this post, I want to show how performance optimisations do not always require extensive and complex code modifications. Sometimes, there is low hanging fruit that we can tackle for some quick performance wins. Let’s look at one such example.

Use System.IO.Pipelines and System.Threading.Channels APIs to Boost Performance

How to use System.IO.Pipelines and System.Threading.Channels APIs to speed up processing.

Test driving C# Source Generators

C# 8 will ship soon with .Net Core 5, and one of the most exciting features are Source Generators. These introduce the ability to add code during compilation, e.g. add a strongly typed accessor library for CSV files or automatically implement a REST interface.

Cross-platform diagnostic tools for .NET Core

A good reminder. It's been this way for a half decade but I'm still bumping into folks who have never heard this. Moving forward, .NET 5 will be a unification of the .NET Framework you may have heard for years, and the new .NET Core I like talking about, PLUS great goodness, tools and libraries from Mono and Xamarin. It's one cross-platform .NET with a number greater than 4. Because 5 > 4, natch.