我想用Java测量线程执行时间。现在我正在监视线程的开始和结束时间,但我认为它不是那么准确,因为线程可能在执行期间被挂起。
答案 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解决方案。