首先,测试开一百万协程,每个协程里定时任务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耗用还好。