Java测量线程的利用率
-
25-10-2019 - |
题
我有一个阻止队列,工人从排队中夺走,然后工作约1-10ms。
我想找出一些相对的数字,即工人在给定的时间范围内有多少时间和空闲时间(例如,最后一分钟处于70%的活动)。
总结短期1毫秒的时间可能是不准确和获取纳米时间会消耗大量的性能。
是否有一些整洁的方法来执行此类任务?
我在代码中更频繁地将这些队列工人设置设置,因此我希望能够在运行时介绍瓶颈。
编辑: 我只想知道该线程是否可以正常工作。如果操作系统将线程移出处理焦点,则仍将计算。只有在等待队列锁定时,才应将其计为空闲时间。
解决方案
如何示例池中每个线程的线程()的螺纹。
这样,您就可以感觉到在新的,可运行的,封锁的,等待的,timed_waiting和终止的频率中。
我能想到的唯一其他方法是在分析工具中运行代码。 YourKit的Java Profiler非常好,并带有1530天的试用许可证...
不隶属于 StackOverflow