Reference Type & Structure Performance

Understanding the differences between reference types (classes) and value types (structs) is crucial for optimizing .NET application performance. This content offers benchmark-driven insights on when to use each type, emphasizing the impact of choice on execution efficiency. Mastering these concepts ensures high-performance code in your applications.

Code It Any Way You Want: Optimizing Span Operations – Clear vs. Fill

This article compares two key search methods in dictionaries: using `Contains()` on the Keys collection and `ContainsKey()` method directly on the dictionary. It demonstrates examples for both approaches, highlighting Microsoft's recommendation of using `ContainsKey()`. The article suggests further examination of the performance aspect of these methods.

Collection Performance: Is LINQ Always the Most Performant Choice?

The article explores the performance implications of using LINQ for collection queries, finding that a conventional foreach() loop outperforms LINQ by 1.75 times in identifying items matching a given query. The conclusion suggests benchmarking to determine the optimal approach based on the nature of the query and elements being sought.

Code It Any Way You Want: Comparison of Passing Parameters in Methods

This article explores different methods of passing parameters into methods, including conventional, in operator, and ref readonly approaches, comparing their performance. Despite differences in syntax, benchmark results demonstrate similar performance among these methods.

General Performance: Choosing Between GetValueOrDefault() and Coalesce Operator for Nullable Integers

In dealing with nullable integers and the need for default values, two common approaches are the coalesce operator (??) and GetValueOrDefault(). Alternatively, utilizing HasValue with the conditional operator is demonstrated.

Code It Any Way You Want: Optimal Parameter Passing – Array vs. Params Keyword

The article explores the performance differences between passing parameters as arrays or using the params keyword in C#. Despite similarities in speed, the author recommends using the params keyword for its ease of use during function calls.

Collection Performance: Creating a List<> Using The Task.Parallel Library

The post discusses alternative approaches to adding items to a collection using For() or ForEach() from the Task Parallel Library.

General Performance Tip: Can Pattern Matching Improve Performance?

The article discusses the potential performance improvements gained by leveraging pattern matching in .NET. It contrasts a traditional method for rounding numbers with a more refined version employing pattern matching.

String Performance: Appending a Character using the StringBuilder

The use of a single character with a StringBuilder from an ObjectPool can improve performance. Benchmark results show similar overall performance, but without an ObjectPool, using a character becomes more significant. It is recommended to use a character in such cases. EditorConfig setup can check for this issue using dotnet_diagnostic.CA1834.severity = warning.

Code It Any Way You Want: Checking Strings for Null

The article discusses best practices for checking strings for null in coding. It outlines three common methods: using == null, is null, or string.IsNullOrEmpty().