Spargine 10 (v2026.10.7.1), released on July 1, 2026, introduces NuGet packages for .NET 10, featuring new types, methods, and performance enhancements. The update allows for trimmable libraries, reducing application sizes and improving startup times. Community contributions are encouraged, and detailed benchmarks are available on GitHub.
Category: Performance
dotNetDave Rocks .NET Developer Days 2026 Warsaw
David McCarter, also known as dotNetDave, will speak at .NET Developer Days 2026 in Warsaw on October 20-21. His sessions focus on performance benchmarking using BenchmarkDotNet and software engineering principles likened to rock music. Attendees will gain insights on effective code measurement, testing, and embracing engineering judgment.
GitHub Copilot and .NET Performance: Benchmark Every Optimization
GitHub Copilot offers optimization suggestions but testing their effectiveness requires careful engineering. While some improvements may seem beneficial, they can complicate code or slow performance. After reviewing various implementations, only a few suggestions showed meaningful gains. Developers must benchmark thoroughly to determine the real impact before adopting AI-generated code.
Task vs. ValueTask: Reducing Async Allocations and Boosting Performance
When writing asynchronous methods, consider returning ValueTask instead of Task for performance-sensitive scenarios, especially when methods frequently complete synchronously. ValueTask can improve speed and reduce memory allocation, but it comes with usage restrictions. Use Task as a default while applying ValueTask selectively after proper testing.
.NET Object Pooling: Reducing Allocation Costs and GC Pressure
Object pooling can reduce allocations, lower GC pressure, and improve .NET performance—but only when used for the right workloads. In my latest subscriber article, I compare custom object pools with DefaultObjectPool and explain when pooling makes sense.
Boost Your .NET Projects with Spargine: Simplify Thread Pool Execution with ThreadPoolHelper
Spargine's ThreadPoolHelper simplifies concurrent execution in .NET applications by providing reusable APIs that manage thread pool operations. It supports single and batch operations, bounded concurrency, timeout management, cooperative cancellation, and non-throwing execution. By centralizing common patterns, ThreadPoolHelper enhances maintainability and reduces repetitive infrastructure code for developers.
Collection Performance: Use Caution when using Range Expressions in Hot Paths when Collection Slicing
Range expressions make collection slicing concise, but they can introduce unexpected overhead in hot paths. This subscriber-only article compares several ways to create slices with `Memory`, `Span`, `ReadOnlyMemory`, and `ReadOnlySpan.
Collection Performance: Sort List Faster with CollectionsMarshal.AsSpan()
To sort a List efficiently, use CollectionsMarshal.AsSpan() to access its internal storage, then apply the Sort() function.
General Performance: Object Initializers – Readability Versus Performance
The post discusses two methods for initializing objects in C#: traditional property assignment and object initializers. While the traditional method is slightly faster, object initializers enhance code readability. It recommends using object initializers for maintainability, reserving traditional assignments for performance-critical scenarios where benchmarks indicate a significant advantage.
.NET Threads: The Performance Trap Hiding in Your Code
Creating background tasks in .NET applications is crucial to maintain responsiveness. While dedicated threads can be used, they incur significant overhead.

You must be logged in to post a comment.