Rust异步编程性能研究(Tokio)

原创
2022/01/26 21:29
阅读数 1.8K

首先,测试开一百万协程,每个协程里定时任务10毫秒:

电脑为16寸MacBook Pro,i9 CPU 八核十六线,耗用如下:

把定时任务去掉的话,CPU全部跑满了。

把定时任务改成10秒一次,CPU耗用在150~220之间:

把开启协程数目改成50万个,每个的定时任务为10秒,CPU耗用在个位数到150之间变化:

把开启协程数目改成50万个,每个的定时任务为10毫秒,CPU耗用又回到了600左右:

把开启协程数目改成50万个,每个的定时任务为100毫秒,CPU耗用居然到了620多:

把开启协程数目改成50万个,每个的定时任务为1秒,CPU耗用在500左右:

最后,试了一下10万协程,每个定时任务1秒,CPU耗用稳定在150左右:

至于内存耗用情况,跑了几分钟后,第一种情况内存上升到700M左右,最后一种情况上升到550M左右。

 

继续测试:

10万协程数,每个定时任务10秒,耗用CPU在个位数到30之间。

 

继续测试:

100万协程数,每个定时任务1000秒,耗用CPU初始时达到700左右,然后稳定在2左右,如下图:

 

开100万协程,每个定时任务100秒,耗用CPU初始达到700左右,100秒后第二个波峰CPU达到170左右:

 

开一千万协程,每个定时任务100秒,CPU在没有定时任务时只有2左右,初始在500多,定时任务到了为2、3百左右,耗用情况如下图:

(第二次再尝试跑一千万协程的时候,把电脑都跑死了😭)

由此可见,Rust开协程,协程里开定时任务的话,还是比较耗CPU资源的。CPU主要耗用在开协程时,和定时任务到了的时候。

单纯开协程的话,则CPU耗用还好。

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部