获取Java应用程序的CPU和内存使用情况的Java API
我需要一个API来获取CPU&;java中当前进程或应用程序的内存使用情况
我有一个API来获取整个系统的CPU使用率,但我需要它用于特定的进程(getSystemCpuLoad
ofOperatingSystemMXBean
接口)
提前谢谢
你可以在下面搜索框中键入要查询的问题!
我需要一个API来获取CPU&;java中当前进程或应用程序的内存使用情况
我有一个API来获取整个系统的CPU使用率,但我需要它用于特定的进程(getSystemCpuLoad
ofOperatingSystemMXBean
接口)
提前谢谢
# 1 楼答案
如果使用不同的
OperatingSystemMXBean
,则可以获取该数据检查导入的包:com。太阳经营操作系统emmxbean
https://docs.oracle.com/javase/7/docs/jre/api/management/extension/com/sun/management/OperatingSystemMXBean.html
如果我没有弄错的话,这个类包含在rt.jar中,它存在于java运行时中
# 2 楼答案
有好消息也有坏消息。坏消息是,使用纯Java无法以编程方式查询CPU使用情况。这方面根本没有API。建议的替代方案可能使用运行时。exec()来确定JVM的进程ID(PID),调用一个外部的、特定于平台的命令,如ps,并为感兴趣的PID解析其输出。但是,这种方法充其量也是脆弱的
然而,好消息是,一个可靠的解决方案可以通过跳出Java并编写一些C代码行来实现,这些代码行通过Java本机接口(JavaNativeInterface,JNI)与Java应用程序集成
# 3 楼答案
一旦有了pid,就可以使用jstat-gc[insert pid here]来查找垃圾收集堆行为的统计信息
jstat-gccapacity[在此处插入pid]将显示有关内存池生成和空间功能的信息
jstat-gcutil[在此处插入pid]将以容量的百分比表示每一代的利用率。有助于获得使用情况的概览