<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/net-11-performance-what-got-faster-and-how-to-measure-it-ulgphlqej" -->

---
title: .NET 11 Performance: What Got Faster and How to Measure It
description: .NET 11 delivers broad performance gains over .NET 10 without requiring code changes, mostly by retargeting to net11.0. The JIT devirtualizes more code,...
canonical: https://daily.dev/posts/net-11-performance-what-got-faster-and-how-to-measure-it-ulgphlqej
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: .NET 11 Performance: What Got Faster and How to Measure It | daily.dev
og:description: .NET 11 delivers broad performance gains over .NET 10 without requiring code changes, mostly by retargeting to net11.0. The JIT devirtualizes more code,...
og:url: https://daily.dev/posts/net-11-performance-what-got-faster-and-how-to-measure-it-ulgphlqej
og:image: https://api.daily.dev/og/posts/ULgPHLQeJ.png
og:image:alt: .NET 11 Performance: What Got Faster and How to Measure It
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# .NET 11 Performance: What Got Faster and How to Measure It

**[C\# Corner](https://daily.dev/sources/csharpcorner)** · 15 min read · 5 upvotes · 1 comments

## Summary

.NET 11 delivers broad performance gains over .NET 10 without requiring code changes, mostly by retargeting to net11.0. The JIT devirtualizes more code, eliminates more bounds checks, and reduces allocations, while runtime async moves async state machines from the compiler into the JIT, shrinking a ten-layer test app's async code from 10,752 to 5,632 bytes. Regex patterns see up to 50x speedups from better prefix analysis. The release is at Release Candidate 3 as of October 2026, with general availability planned for November 10, 2026, and it requires the x86-64-v2 CPU baseline. It's a Standard Term Support release, supported until November 9, 2028.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.c-sharpcorner.com/article/net-11-performance-what-got-faster-and-how-to-measure-it>

## Questions this post answers

### What CPU instruction set does .NET 11 require to run?

.NET 11 requires the x86-64-v2 baseline on x86/x64, which adds SSE4.2, POPCNT, CX16 and similar instructions, plus LSE on Windows Arm64. On older CPUs lacking these, the app fails at startup with an error stating the current CPU is missing one or more of the baseline instruction sets, so hosts and container images should be checked before upgrading.

_Teams planning a .NET 11 upgrade can track compatibility and breaking-change coverage on daily.dev._

### How much faster is runtime async in .NET 11 compared to the classic compiler-generated async state machine?

Awaiting an already-completed task drops from 21.221 ns and 144 bytes allocated to 6.151 ns and 0 bytes, a ratio of about 0.29. Exception propagation through 30 frames with a yield falls from 65.974 microseconds and 85.53 KB to 11.254 microseconds and 7.72 KB, a ratio of 0.17, based on Microsoft's benchmarks comparing the two approaches both running on .NET 11.

_Developers weighing whether to enable runtime async can compare these benchmark numbers on daily.dev before testing their own code._

### Why isn't .NET 11 support in BenchmarkDotNet available in the stable release yet?

The stable BenchmarkDotNet 0.15.8 does not recognize the net11.0 target framework moniker. Microsoft's own performance benchmarks used the preview build 0.16.0-preview.1, and 0.16.0-preview.2 is also available, so benchmarking .NET 11 against .NET 10 currently requires installing one of these preview packages instead of the stable release.

_Developers setting up cross-runtime benchmarks can find version-specific tooling guidance like this on daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@ajaychoudhary80** · 1 upvotes

> The most compelling part is getting meaningful performance gains just by retargeting, without rewriting application code. Moving async state-machine work into the JIT is especially interesting, while the regex improvements show how much optimization can come from better analysis. The x86-64-v2 baseline is worth checking before upgrading, though—hardware compatibility matters as much as benchmark wins.

## Similar posts on daily.dev

- [.NET 11 Performance Gains That Matter for AI-Adjacent Backends — Daily DevOps & .NET](https://daily.dev/posts/net-11-performance-gains-that-matter-for-ai-adjacent-backends-daily-devops-net-25rrsf53j) · Daily DevOps & .NET · 28 upvotes · 2 comments
- [Microsoft unveils first preview of .NET 11](https://daily.dev/posts/microsoft-unveils-first-preview-of-net-11-4y7l7j8r0) · InfoWorld · 24 upvotes · 1 comments
- [Microsoft Releases .NET 11 Preview 3 with Updates Across Runtime, SDK, MAUI, and ASP.NET Core](https://daily.dev/posts/microsoft-releases-net-11-preview-3-with-updates-across-runtime-sdk-maui-and-asp-net-core-4tyjhbtqm) · InfoQ · 5 upvotes · 1 comments

---

Tags: [#performance](https://daily.dev/tags/performance), [#.net](https://daily.dev/tags/.net), [#c#](https://daily.dev/tags/c#), [#aspnet](https://daily.dev/tags/aspnet)

[View this post on daily.dev](https://daily.dev/posts/net-11-performance-what-got-faster-and-how-to-measure-it-ulgphlqej)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":".NET 11 Performance: What Got Faster and How to Measure It","url":"https://daily.dev/posts/net-11-performance-what-got-faster-and-how-to-measure-it-ulgphlqej","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/net-11-performance-what-got-faster-and-how-to-measure-it-ulgphlqej"},"datePublished":"2026-10-30T13:32:09.469Z","dateModified":"2026-10-30T13:32:40.266Z","description":".NET 11 delivers broad performance gains over .NET 10 without requiring code changes, mostly by retargeting to net11.0. The JIT devirtualizes more code,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/717a303bba6a592af0a046f5694be8b7?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/717a303bba6a592af0a046f5694be8b7?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"C# Corner","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"C# Corner","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/ada2d584df6241748fc4e71878dc70a3","url":"https://daily.dev/sources/csharpcorner"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/net-11-performance-what-got-faster-and-how-to-measure-it-ulgphlqej","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":5},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"performance,.net,c#,aspnet","timeRequired":"PT15M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"C# Corner","item":"https://daily.dev/sources/csharpcorner"},{"@type":"ListItem","position":3,"name":".NET 11 Performance: What Got Faster and How to Measure It"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/net-11-performance-what-got-faster-and-how-to-measure-it-ulgphlqej","comment":[{"@type":"Comment","text":"The most compelling part is getting meaningful performance gains just by retargeting, without rewriting application code. Moving async state-machine work into the JIT is especially interesting, while the regex improvements show how much optimization can come from better analysis. The x86-64-v2 baseline is worth checking before upgrading, though—hardware compatibility matters as much as benchmark wins.","datePublished":"2026-10-31T02:11:24.947Z","url":"https://daily.dev/posts/ULgPHLQeJ#c-8V8tPUES4","author":{"@type":"Person","name":"Ajay Choudhary","url":"https://daily.dev/ajaychoudhary80","image":"https://media.daily.dev/image/upload/s--WkX8wDW2--/f_auto/v1780989706/avatars/avatar_QNZlI2SgVnNSx5PSRpCVx?_a=BAMAMiWQ0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/net-11-performance-what-got-faster-and-how-to-measure-it-ulgphlqej#faq","mainEntity":[{"@type":"Question","name":"What CPU instruction set does .NET 11 require to run?","acceptedAnswer":{"@type":"Answer","text":".NET 11 requires the x86-64-v2 baseline on x86/x64, which adds SSE4.2, POPCNT, CX16 and similar instructions, plus LSE on Windows Arm64. On older CPUs lacking these, the app fails at startup with an error stating the current CPU is missing one or more of the baseline instruction sets, so hosts and container images should be checked before upgrading. Teams planning a .NET 11 upgrade can track compatibility and breaking-change coverage on daily.dev."}},{"@type":"Question","name":"How much faster is runtime async in .NET 11 compared to the classic compiler-generated async state machine?","acceptedAnswer":{"@type":"Answer","text":"Awaiting an already-completed task drops from 21.221 ns and 144 bytes allocated to 6.151 ns and 0 bytes, a ratio of about 0.29. Exception propagation through 30 frames with a yield falls from 65.974 microseconds and 85.53 KB to 11.254 microseconds and 7.72 KB, a ratio of 0.17, based on Microsoft's benchmarks comparing the two approaches both running on .NET 11. Developers weighing whether to enable runtime async can compare these benchmark numbers on daily.dev before testing their own code."}},{"@type":"Question","name":"Why isn't .NET 11 support in BenchmarkDotNet available in the stable release yet?","acceptedAnswer":{"@type":"Answer","text":"The stable BenchmarkDotNet 0.15.8 does not recognize the net11.0 target framework moniker. Microsoft's own performance benchmarks used the preview build 0.16.0-preview.1, and 0.16.0-preview.2 is also available, so benchmarking .NET 11 against .NET 10 currently requires installing one of these preview packages instead of the stable release. Developers setting up cross-runtime benchmarks can find version-specific tooling guidance like this on daily.dev."}}]}
```

