.NET 现在正在把 async/await 从原来的编译器实现改成 runtime 直接支持新的 async 调用约定,带来了非常大的性能提升,不过代码的写法倒是没有改变,但底层改变很大。
![]() |
1
geelaw 2 天前
省流版技术总结:在 IL 层面引入异步的概念,于是编译器不用把代码切成很多块儿(这会导致 JIT 很难掌握不变式,于是难以优化),于是 JIT 和运行时可以看到更多信息,从而优化异步性能。
向楼主提问:这套 ABI 是否有“反哺” iterator block 的可能/打算? |
![]() |
2
dcdlove 1 天前
怀念 ,由于脱钩搞信创 国内 C# 几乎被屠杀殆尽
|
![]() |
5
june4 1 天前
国内 .net 被打死了我是喜闻乐见的
|
![]() |
7
dcdlove 1 天前
|
8
nebkad 1 天前
我点句难听点的话,Rust 的 async/await 写起来虽然也不见得比 C# 的好到哪去,
但是等待异步事件不需要堆分配真的吊打 C#。 C# 吃了这么多年的老本,难道就没有考虑过优化这一点吗? 显然是压力不够并且保守群体太大,改不动。 现在微软已经重新走入堕落螺旋,我不相信 Runtime async 会有一个好的结果。 原因在于我上面说的,C# 现在连最有创造力的游戏开发群体都抓不住, 指望一堆吃老本的会用主动用新 runtime ,实在是过于乐观了。 |
9
hez2010 OP @nebkad 不知道你在说什么,runtime async 等待异步事件还真就可以不需要堆分配,不然文中递归调用 FibAsync 的测试中性能也不可能比得上同步版本。
|