In my last post, which is part of my ‘Writing High-Performance C# and .NET Code‘ series, we looked at how we can begin interpreting some of the data from a dotMemory profiling session. In this post, we’ll continue the analysis by investigating why we saw that the Large Object Heap (LOH) size grows for about […]
Category: C#
Interpreting the .NET Core Memory Timeline in JetBrains dotMemory Writing High-Performance C# and .NET Code: Part 6
In my last post, which is part of my ‘Writing High-Performance C# and .NET Code‘ series, we looked at how dotMemory can be used to view the amount of memory allocated by code in an application using the memory traffic comparison. In this post, I’ll begin looking at some of the other information available in […]
Profiling .NET Core Memory Traffic using JetBrains dotMemory Writing High-Performance C# and .NET Code: Part 5
In this post, I will continue my journey into writing high-performance C# and .NET Core code by taking a look at a benchmarking challenge I recently encountered. While writing some sample code for an upcoming talk, I wanted to create a demo based on a scenario that I’d experienced at work. In that scenario, I […]
Creating Strings with No Allocation Overhead Using String.Create Writing High-Performance C# and .NET Code: Part 4
In this post, I’ll continue my series about writing high-performance C# and .NET code. This time, I will focus on a new(ish) method available on the String type – String.Create. First introduced in .NET Core 2.1, this method is currently planned for inclusion as part of .NET Standard 2.1 once that is released. What Does […]
An Introduction to Optimising Code Using Span<T> Writing High-Performance C# and .NET Code: Part 3
This post continues my series about writing high-performance C# code. In this post, we’ll continue from the last two posts by introducing the Span<T> type and refactor some existing code by converting it to a Span-based version. We’ll use Benchmark.NET to compare the methods and validate whether our changes have improved the code. If you […]