我熟悉
http://download.oracle.com/javase/6/docs/api/java/lang/management/ThreadMXBean.html
我想测试\ profile \测量线程获得多少CPU时间。 我将以下内容添加到我的线程构造函数中:
ManagementFactory.getThreadMXBean().setThreadCpuTimeEnabled(true);
if(!ManagementFactory.getThreadMXBean().isCurrentThreadCpuTimeSupported())
System.err.println("measure is not supported.");
ManagementFactory.getThreadMXBean().setThreadContentionMonitoringEnabled(true);
if(!ManagementFactory.getThreadMXBean().isCurrentThreadCpuTimeSupported())
System.err.println("contention is not supported.");
然后当线程完成它的执行时,我执行了:
long tID = Thread.currentThread().getId();
long execTime = ManagementFactory.getThreadMXBean().getThreadCpuTime(tID);
但对于我的大多数线程,我确实绝对确定它们占用了CPU,我的执行时间为零(execTime == 0)。
我如何衡量我的线程?上述程序可能出现什么问题?
先谢谢。