如何获得PID';使用java程序的内存、CPU使用率?
我试图通过Java程序获取PID的内存和CPU使用率 我可以通过以下代码获得当前程序的PID:如何获得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
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系统