这几年,似乎服务器开发领域一直在向异步发展。
一开始java系netty开始流行nio 从nodejs 开始,开始流行promise,回调地狱迫使它支持了async await golang看不下去了,用CSP模型 实现了彻底的异步化 最后出场的Rust贯彻零开销概念,也实现了基于future的async await
后来 一些开源库作者蠢蠢欲动,
async_std 欲成为rust的异步标准库,tokio凭借mio以及大名鼎鼎的actix-web谁与争锋。 后起之秀may 欲实现go的CSP模型却苦于固定容量栈
最后,作为开发者的你 大概使用rust也懵逼了吧??? 比如我,我希望异步库性能高,也希望0开销,似乎2者不可兼得。
例如,基于future的tokio 和基于csp模型的may性能上肯定有一点点差距, 在我看来,IO的时间越长,future的优点体现出来了,它可以hold住更多的IO同时保持低消耗。 但是 IO的时间如果越短,future的弱点就出来了,反而基于线程模型或者CSP模型的吞吐量更快更高
忽然在想,是否能有基于时间评估的异步运行时呢,例如500ms时间内在线程池里执行,超过500ms移动到协程池里执行
评论区
写评论IO时间长短啥意思?