gpt4 book ai didi

Java 测量线程的利用率

转载 作者:行者123 更新时间:2023-11-30 04:56:44 30 4
gpt4 key购买 nike

我有一个阻塞队列,工作人员从该队列中获取数据,然后工作大约 1-10 毫秒。

我想计算出在给定时间范围内工作人员处于 Activity 状态和空闲状态的相对数字(例如,最后一分钟有 70% 处于 Activity 状态)。

总结短的 1ms 周期可能不准确,并且获取纳秒时间会消耗大量性能。

有什么巧妙的方法来完成这样的任务吗?

我的代码中更频繁地使用这些队列工作程序设置,因此我希望能够在运行时分析瓶颈。

编辑:我只想知道线程是否可以正常工作。如果操作系统将线程移出处理焦点,它仍应计数。只有等待队列锁的时候才算空闲时间。

最佳答案

是否有一种方法可以对池中每个线程的 Thread.getState() 进行采样,然后报告采样时处于每种状态的线程百分比?

这样您就可以了解线程处于 NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING 和 TERMINATED 状态的频率。

我能想到的唯一其他方法是在分析工具中运行代码。 YourKit 的 Java 分析器非常好,并且附带 1530 天的试用许可证...

http://www.yourkit.com/java/profiler/

关于Java 测量线程的利用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8302469/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com