采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,我测试了下最终改版后的性能, 发现CPU暂用率比较高啊. 这是啥原因啊
说实话,咱们的整体设计是偏向于CPU密集型设计的;简单来说就是使用繁忙的CPU去承担内存的消耗。所以我们的内存缓存部分没有下多大的功夫。
另外在select()方法上的CPU消耗较高,这个可以使用一定的缓存,比如间隔10ms才检测一次,这会大大降低CPU使用率,但是在繁忙时会每次select后返回的数量较多,后续的单次批量处理更耗时一些。
具体等待多长时间,还是将CPU拿去做运算操作,这都需要看业务情况进行灵活调度才能达到最优。
就是说CPU占用高也不一定就是坏事对吧, 但是我在自己的电脑上跑的时候,很快就会卡着动不了了,在服务器上运行就不会有这种情况吧,捂脸.
高不一定是坏事,有可能是在循环空转。可以尝试加日志确定CPU消耗的地方,从而想办法做CPU和内存之间的均衡。
登录后可查看更多问答,登录/注册
理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选
2.7k 1
1.8k 7
1.7k 5
1.9k 13
1.1k 13