Part Two: Understanding the Overhead of a StringBuilder To continue exploring how the StringBuilder works, we’ll shift focus and study its logical design. Today, we’ll start by looking at how the type is designed and the overhead involved with creating and using StringBuilder instances. If you missed part one of this series, I explained why […]
Tag: Memory
Analysing the Large Object Heap in JetBrains dotMemory Writing High-Performance C# and .NET Code: Part 7
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 […]
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 […]
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 […]