
外部精选
软件工程
#开发者实时流开发者报告 .NET 11 异步性能回归,RC2 起多项基准明显变慢
来源标题:.NET11 Async Perf Regression
开发者反馈 .NET 11 自 RC2 起出现明显异步性能回归,最新 release/11.0 GA 分支更严重。基准显示 Task.Yield 挂起从 .NET 11 RC1 的 34.30 ns 升至 RC2 的 184.69 ns,最新每日构建为 249.03 ns;ThreadPool 与 TaskCompletionSource 续延耗时也同步上升。相比之下,无挂起异步和已完成 Task/ValueTask await 仍维持在 0.3 ns 左右。
Hacker News 最新mmd452026/11/12 · 今天3 分钟阅读
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
描述
我在跑 runtime async 的基准测试,但看起来从 .NET 11 rc2 开始出现了严重的性能回退,而在最新的 release/11.0 GA 分支上还要更糟。
| 基准测试 | .NET 10 | .NET 11 RC1 | .NET 11 RC2 | .NET 11 daily |
|---|---|---|---|---|
| 同步基线 | 0.332 ns | 0.332 ns | 0.333 ns | 0.332 ns |
| 异步、无挂起 | 6.466 ns | 0.395 ns | 0.393 ns | 0.399 ns |
| 已完成 Task 的 await | 4.006 ns | 0.333 ns | 0.330 ns | 0.336 ns |
| 已完成 ValueTask 的 await | 0.754 ns | 0.333 ns | 0.336 ns | 0.332 ns |
| Task.Yield 挂起 | 302.58 ns | 34.30 ns | 184.69 ns | 249.03 ns |
| ThreadPool 续体 | 373.83 ns | 104.87 ns | 266.91 ns | 341.99 ns |
| TaskCompletionSource 续体 | 499.52 ns | 115.66 ns | 381.54 ns | 530.47 ns |
| 异步状态机链 | 712.21 ns | 86.76 ns | 281.17 ns | 374.03 ns |
| 基准测试代码:https://gist.github.com/hez2010/d1802e7c7ab10e21a92dcba2afe0a58d |
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。