Some of the biggest performance problems in almost any .NET application boil down to string operations. They are both very common and by nature pretty expensive. In fact, looking at an average .NET Dump you’ll find that most of the memory is usually taken by strings (I heard about 70%). As you probably know, strings are immutable. So whenever you concatenate strings, a new string object is allocated, populated with content, and eventually garbage collected.
One of the most powerful tools in programming is the Job Queue. It's a simple concept that stands in the core of many software solutions. It's also a pretty interesting programming challenge, especially in a versatile language like C#.
With a rough estimate of over 3 million .NET developers, creating development tools for them is a huge market. There are several big players that are competing for that income. These companies provide productivity tools, profilers, VS extensions, UI Controls and more. We’ll see which companies are the biggest players, how they fare against each other, how much they earn, and some history on how it came to be. There are many types of tools and solutions around .
In this article, we'll see what exactly are dump files, why they are so helpful and how to use them correctly. You will see all the ways to create Dump files, to properly match them with symbols and source files and finally how to debug them to solve the problem.
In LINQ, there are 2 syntax flavors: query-syntax and method-syntax. While Method-Syntax is more popular, it isn't always better. There are several cases where query syntax is better, and this is what this article is all about. By better, I mean it makes more readable code.
Welcome to the 3rd and final part of the Deadlocks-in-Depth series. In this part, I’ll show you 2 additional techniques to debug deadlocks: Working with Tracepoints and using the notorious WinDbg to automatically detect deadlocks.
In software, one developer can make a big difference. This is why hiring great engineers is so hard, and why programmer salaries are sky-rocketing. A high-performance software developer is an incredible asset in a team. A company is willing to pay them top dollar, and the competition to hire them is fierce.
We'll see two more deadlock types: The notorious UI-Message-Queue Deadlock and the Sync-Context Deadlock (both names coined by me just now). In addition, I'll show you a new debugging technique for deadlocks and multi-threaded scenarios.
For me, multi-threading programming is one of the most fun things I do as a developer. It’s fun because it’s hard and challenging. And I get a particular sense satisfaction when solving deadlocks. So today I’m writing on one of my favorite subjects.