如何获得PID';使用java程序的内存、CPU使用率?

如何获得PID';使用java程序的内存、CPU使用率?,java,memory,cpu,Java,Memory,Cpu,我试图通过Java程序获取PID的内存和CPU使用率 我可以通过以下代码获得当前程序的PID: private static int getProcessId() { String name = ManagementFactory.getRuntimeMXBean().getName(); StringBuffer pid = new StringBuffer(); for (int i = 0, l = name.length(); i < l; i++) { if

我试图通过Java程序获取PID的内存和CPU使用率

我可以通过以下代码获得当前程序的PID:

private static int getProcessId()
{

String name = ManagementFactory.getRuntimeMXBean().getName();

StringBuffer pid = new StringBuffer();
    for (int i = 0, l = name.length(); i < l; i++) {
    if (Character.isDigit(name.charAt(i))) {
        pid.append(name.charAt(i));
    } else if (pid.length() > 0) {
        break;
    }
    }
    try {
    return Integer.parseInt(pid.toString());
    } catch (NumberFormatException e) {
    return 0;
    }

}
private static int getProcessId()
{
字符串名称=ManagementFactory.getRuntimeMXBean().getName();
StringBuffer pid=新的StringBuffer();
for(int i=0,l=name.length();i0){
打破
}
}
试一试{
返回Integer.parseInt(pid.toString());
}捕获(数字格式){
返回0;
}
}
通过使用PID,我想计算内存和CPU使用率。有什么方法可以得到这些东西吗


例如,假设我从方法
getProcessId()
中获得的PID为2256。我想计算PID:2256的内存和CPU。

如果您在Linux(或其他UNIXy)系统上运行(如果您谈论的是PID,可能是),则在下提供了一整套可用的东西,假设您可以使用

您可以在
/proc/self
中搜索当前进程,也可以在
/proc/
中搜索其他进程


对于内存和CPU使用,我从
statm
status
stat
开始。有关更详细的说明,请参阅。

要显示的信息是特定于平台的/proc(procfs)是现代unix中的标准机制。是JNI到proc文件系统。你会发现它非常有用

:

就像从Java访问KStat一样 还不够,我最近 玩访问过程 信息-特别是/proc Solaris上的文件系统-来自java。 于是诞生了JProc

最终的想法是将这两者联系起来 使用JKstat和SolView提供更多 完整地查看计算机上正在发生的事情 Solaris系统