IoStealingSelectorProvider的性能测试

来源:13-1 课程展望与后续

qq_胜在终点_0

2020-02-18

图片描述

老师,我测试了下最终改版后的性能, 发现CPU暂用率比较高啊. 这是啥原因啊

写回答

1回答

Qiujuer

2020-02-19

说实话,咱们的整体设计是偏向于CPU密集型设计的;简单来说就是使用繁忙的CPU去承担内存的消耗。所以我们的内存缓存部分没有下多大的功夫。

另外在select()方法上的CPU消耗较高,这个可以使用一定的缓存,比如间隔10ms才检测一次,这会大大降低CPU使用率,但是在繁忙时会每次select后返回的数量较多,后续的单次批量处理更耗时一些。

具体等待多长时间,还是将CPU拿去做运算操作,这都需要看业务情况进行灵活调度才能达到最优。

0
2
Qiujuer
回复
qq_胜在终点_0
高不一定是坏事,有可能是在循环空转。可以尝试加日志确定CPU消耗的地方,从而想办法做CPU和内存之间的均衡。
2020-02-20
共2条回复

Socket网络编程进阶与实战 系统掌握Socket核心技术

理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选

2314 学习 · 476 问题

查看课程