java - isThreadCpuTimeSupported 返回负数
问题描述
我一直在为此拔头发。我的程序应该测量在搜索使用简单双哈希算法的哈希表时的 CPU 时间。但是,ThreadMXBean 不断返回-1。任何帮助表示赞赏。
“主要”的片段
ThreadMXBean bean = ManagementFactory.getThreadMXBean();
//CREATE A THREAD
DoubleHashThread doubleThread =
new DoubleHashThread("doublethread"); //CREATE DOUBLE HASHING THREAD
doubleThread.setDaemon(true);
doubleThread.start();
getCpuTime(doubleThread);
doubleThread.run(hashTable,data); //RUN SEARCH FUNCTION
getCpuTime(doubleThread);
GetCpuTime 方法
public static long getCpuTime(DoubleHashThread dt)
{
ThreadMXBean bean = ManagementFactory.getThreadMXBean(); //GET THREAD BEAN
long cpuTime = 0;
if (bean.isThreadCpuTimeSupported()) //if grabbing it is supported, continue
{
System.out.println("CPU time for " + dt.getId() + " " + dt.getName() +
" is " + bean.getThreadCpuTime(dt.getId()));
}
return cpuTime;
}
双哈希线程.java
import doubleHash.DoubleHash;
public class DoubleHashThread extends Thread
{
public DoubleHashThread(String s)
{
this.setName(s);
}
//RUNS SEARCH FUNCTION
public void run(String[] hashTable, String data)
{
DoubleHash.searchTable(hashTable,data); //run Double Hash's search
}
}
解决方案
推荐阅读
- java - 此自定义数组适配器不适用于整数
- java - 在springBoot的内部静态测试类中初始化bean
- python - Python - 根据值过滤数据框
- c++ - 保存在父类类型向量中时调用派生类函数
- oracle - 如何为 Oracle 优化 Dockerfile?
- xilinx-ise - 如何为 Ubuntu 19.10 安装 Xilinx ISE 14.7
- java - Java查找不包含在对象列表中的对象
- windows - 理解 SYSTEM_POWER_INFORMATION 结构中的 MaxIdlenessAllowed 和 TimeRemaining
- c++ - 交换字符串(字符串下标超出范围错误)
- c - 文件锁定程序不锁定文件