为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 dequeue() 花费如此多的处理器时间?

为什么 dequeue() 花费如此多的处理器时间?

MM们 2023-07-19 17:33:01
Visual VM 显示 FifoMessageDispatchChannel.dequeue() 花费了大量时间。Tomcat 进程正在使用大约 100% 的处理器核心。
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

dequeue() 并不像其他人所说的那样占用太多处理器时间。对另一个问题的回答解释了“自我时间”包括花在处理以外的事情上的时间,例如等待。

Self 和 Total Time (CPU) 包括使用处理器的方法中的时间,对于 dequeue() 来说它们为 0。要查找使用处理器最多的方法,请按自用时间 (CPU) 排序,如Bedla 所示。


查看完整回答
反对 回复 2023-07-19
?
慕村225694

TA贡献1880条经验 获得超4个赞

最可能的原因是您正在调用消费者接收方法并等待很短的时间,但如果没有更多信息就无法判断。调度通道只是检查队列中是否有数据,如果没有数据存在,则会在给定的超时时间内阻塞,等待信号唤醒并再次检查或超时并返回。



查看完整回答
反对 回复 2023-07-19
  • 2 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信