Using SSE in C# on the example of the sum of a list
A guide to using SIMD (SSE) instructions in C# to optimize performance, demonstrated by summing a list of integers.
Steven Giesel is a Senior Software Engineer and Microsoft MVP with over 13 years of experience, specializing in .NET and modern backend development. He shares deep technical knowledge across topics such as C#, EF Core, RavenDB, distributed systems, and cloud-native architectures, and is an active speaker in the .NET community.
316 articles from this blog
A guide to using SIMD (SSE) instructions in C# to optimize performance, demonstrated by summing a list of integers.
Explains the Decorator Pattern in C# using a cached repository example to add behavior dynamically without subclassing.
A tutorial on creating a custom RequiredIf validation attribute for conditional form validation in Blazor applications.
Explains how to use Directory.Build.props to centralize and manage common MSBuild configurations across multiple C# projects.
Explains how to use DebuggerTypeProxy and DebuggerDisplay attributes in C# to control how complex objects appear in the debugger.
Advanced techniques and best practices for optimizing performance in Blazor applications, covering virtualization, lazy loading, and AOT compilation.
Explains memory management in C#, covering the Heap, Stack, and the performance implications of boxing and unboxing operations.
Explains Blazor app prerendering, its benefits for SEO and user experience, and how to implement it with practical tips.
Performance analysis comparing different methods for equality checks on C# enums, revealing the significant speed advantage of the == operator.
A tutorial on implementing component virtualization in Blazor to improve performance by rendering only visible UI elements.
Explains the C# yield keyword and generator functions, demonstrating lazy evaluation with code examples comparing IEnumerable and List.
Explains the differences between Task and ValueTask in C#, including use cases, performance benefits, and potential pitfalls for async programming.
Explains how Singleton, Scoped, and Transient service lifetimes behave differently in Blazor WebAssembly client apps versus Blazor Server apps.
Explains CPU branch prediction using a railroad analogy, detailing how predictable conditional statements (if/else) can significantly improve performance.
A tutorial on using the ILGPU library to perform GPU-accelerated matrix multiplication in C#, comparing performance with a naive CPU implementation.
Explores C# .NET 6 preview features enabling static abstract members in interfaces, focusing on generic math and parsable contracts.
A guide to implementing a type-safe, feature-rich alternative to C#'s built-in enum, addressing its common shortcomings.
A guide to using a Git hook to automatically prefix commit messages with JIRA ticket numbers from branch names.
A guide to implementing and managing API versioning in ASP.NET Core, covering setup, benefits, and practical examples.
A guide to creating and using Git aliases to streamline common version control commands and improve workflow efficiency.