如何衡量Java线程执行时间?

时间:2010-05-06 11:44:22

标签: java performance multithreading monitoring

我想用Java测量线程执行时间。现在我正在监视线程的开始和结束时间,但我认为它不是那么准确,因为线程可能在执行期间被挂起。

3 个答案:

答案 0 :(得分:17)

Java MXBeans可以提供每线程CPU时间:

import java.lang.management.ManagementFactory;
import java.lang.management.ThreadMXBean;

long nanos = ManagementFactory.getThreadMXBean().getThreadCpuTime(Thread.currentThread().getId());

答案 1 :(得分:7)

这非常重要。最好的办法是使用一个可以累积实际CPU周期的分析器。

答案 2 :(得分:0)

使用支持多个指标的分析解决方案。我们称他们的产品为(指标)米,支持标准的产品,如CPU时间,阻塞时间,等待时间,甚至是基于关键性能指标的定制仪表。我假设你也想看看一个线程到底在做什么,在这种情况下你肯定需要考虑一个产品而不是一个本土的ad hoc解决方案。