Tech
[C#] .NET 11 的 async 性能改进过于逆天
之前写过文章介绍了 .NET 11 推出的 runtime async ,即不再由 C# 编译器把 async 方法编译成状态机而是直接交由给 runtime 处理做代码生成。使用 runtime async 不需要修改已有代码,只需要重新编译一次就行。顺带提一嘴,runtime async 仍然属于无栈协程方案,因此不存在有栈方案的额外开销。
然后正好最近看到关于 runtime async 的几个重要优化都被合并入了上游分支里,就把 main 分支代码拉下来构建 runtime 然后用 .NET 11 nightly 开启 runtime async 对比 .NET 10 不开启 runtime async 的性能。
结果如下:( async1 即目前 .NET 10 的 async ,async2 即 .NET 11 将推出的 runtime async )
测试代码见: https://gist.github.com/hez2010/d1802e7c7ab10e21a92dcba2afe0a58d
省流:
不实际发生暂停的 async 代码快了 ...
Read the full discussion on V2EX
This article was aggregated from V2EX. Click to join the conversation.
View on V2EX