【发布时间】:2011-11-28 21:19:59
【问题描述】:
我有一个阻塞队列,工作人员从该队列中取出,然后工作大约 1-10 毫秒。
我想弄清楚在给定时间范围内工作人员处于活动状态和空闲状态的相对时间(例如,最后一分钟有 70% 处于活动状态)。
总结短短的 1 毫秒周期可能是不准确的,并且获取纳秒时间会消耗很多性能。
有没有一些巧妙的方法来完成这样的任务?
我的代码中更频繁地设置了这些队列工作者,因此我希望能够在运行时分析瓶颈。
编辑:我只想知道线程是否可以工作。如果操作系统将线程移出处理焦点,它仍应计数。只有在等待队列锁的时候才算作空闲时间。
【问题讨论】:
-
澄清:您想知道每个给定线程的 CPU 时间或给定对象中任何线程消耗的 CPU 时间吗?
标签: java multithreading performance profile blockingqueue