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

gio*_*kva 8 java performance monitoring multithreading

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

小智 17

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

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

long nanos = ManagementFactory.getThreadMXBean().getThreadCpuTime(Thread.currentThread().getId());
Run Code Online (Sandbox Code Playgroud)


Aar*_*lla 7

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

  • +1 JDK包含一个分析器JVisualVM,这是你可以尝试的第一件事. (3认同)