DEV Community

kirandeepjassal-crypto
kirandeepjassal-crypto

Posted on • Originally published at prepstack.co.in

.NET 11 vs .NET 10: We Benchmarked Both on a Real Production App (Should You Upgrade?)

Originally published on PrepStack. Cross-posting the TL;DR here.

We run a multi-tenant analytics SaaS on ASP.NET Core (~110k MAU, ~3,200 req/sec peak, ~95k LOC) and benchmarked .NET 9, .NET 10 (current LTS), and .NET 11 previews on the same harness and the same production workload — not synthetic microbenchmarks.

The numbers (9 -> 10, GA, near-zero code changes)

Metric .NET 9 .NET 10 (GA) .NET 11 (preview)
Throughput / instance baseline +11% +6-9% (early)
API p95 132 ms 120 ms -5-7% (early)
Working set / instance 415 MB 380 MB a few MB less
AOT cold start 84 ms 61 ms ~55 ms (early)
AOT image size 41 MB 33 MB ~30 MB (early)
Language C# 13 C# 14 C# 15 (preview)

What it covers

  • Runtime/JIT free wins (AVX10.2, devirtualization, loop opts)
  • GC/memory (DATAS right-sizing the heap)
  • ASP.NET Core built-in OpenAPI + minimal-API validation
  • C# 14: the field keyword + extension members (~700 LOC deleted)
  • Native AOT startup & container size
  • Microsoft.Extensions.AI becoming first-class
  • The actual 9 -> 10 migration (~1.5 engineer-days for 95k LOC)

Verdict: upgrade to the LTS for the free, measured wins; pilot the .NET 11 preview in CI, ship after GA (Nov 2026). And benchmark your hot paths — generic benchmarks don't reflect your workload.

Full post with before/after code and the decision checklist: https://prepstack.co.in/blog/dotnet-11-vs-dotnet-10-benchmarked-production

Top comments (0)