Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过java进程查找cpu使用率_Java_Jvm_Cpu Usage - Fatal编程技术网

如何通过java进程查找cpu使用率

如何通过java进程查找cpu使用率,java,jvm,cpu-usage,Java,Jvm,Cpu Usage,我想监视一些java应用程序的cpu使用情况。我不想使用像这样的工具 jconsole(JMX) 如果有任何方法可以通过java代码进行检查?一种方法是使用 Runtime.getRuntime().exec(command); 然后运行top | grep java命令。使用 目前它报告: 进程表(也可作为树提供),包括pid、ppid、名称、, 命令行、用户、进程大小、常驻进程大小、用户时间、, 和内核时间 正常运行时间 当前进程的pid 总内存和自由内存 完全和自由交换 CPU使用率

我想监视一些java应用程序的cpu使用情况。我不想使用像这样的工具 jconsole(JMX)


如果有任何方法可以通过java代码进行检查?

一种方法是使用

Runtime.getRuntime().exec(command);
然后运行
top | grep java
命令。

使用

目前它报告:

  • 进程表(也可作为树提供),包括pid、ppid、名称、, 命令行、用户、进程大小、常驻进程大小、用户时间、, 和内核时间
  • 正常运行时间
  • 当前进程的pid
  • 总内存和自由内存
  • 完全和自由交换
  • CPU使用率
  • CPU频率
  • CPU数量

您还可以使用jmx mbeans或使用Runtime.exec()获取PID,并使用该调用平台特定的命令(如ps)。

您应该从Java类本身检索MXBean
ThreadMXBean
,并使用方法
get*CpuTime()

否则,您可以在Java进程PID上使用良好的old
top
和grep

如果您足够勇敢,在
linux工具
包中还有
perf
工具


希望有帮助

实现这一点的方法是使用JMX。您可以像其他任何Java代码一样从Java代码调用JMX。或者您可以在外部使用
ps
或读取
/proc/{pid}
(如果您有Linux)。我需要Java进程的cpu使用百分比。如何使用JMX?请检查如何使用getCPUUsage我使用的是CpuTimes.getCPUUsage,但它总是返回1.0putimes ct=monitor.CpuTimes();ct.getCpuUsage(ct)@你有索拉夫的源代码试着调试,我们看一行什么都看不出来。你可以为这个问题开始一个新的问题,并在那里提供你的代码,我相信你会得到答案。