如何使用SIGAR库获取java进程的内存使用率? 下面的过程是执行C++代码,我想知道C++代码使用的内存。 ProcessBuilder p = new ProcessBuilder("./" + compiledFile); Process pp = p.start(); long id = getProcessID(pp); Sigar sigar=new Sigar(); ProcMem memory=new ProcMem(); memory.gather(sigar, id); System.out.println("memory ---> "+Long.toString(memory.getSize()));
我试过下面的代码,但它返回sigar异常:“没有这样的过程”。 要获取进程id,我使用以下方法如何使用SIGAR库获取java进程的内存使用率? 下面的过程是执行C++代码,我想知道C++代码使用的内存。 ProcessBuilder p = new ProcessBuilder("./" + compiledFile); Process pp = p.start(); long id = getProcessID(pp); Sigar sigar=new Sigar(); ProcMem memory=new ProcMem(); memory.gather(sigar, id); System.out.println("memory ---> "+Long.toString(memory.getSize()));,java,sigar,Java,Sigar,我试过下面的代码,但它返回sigar异常:“没有这样的过程”。 要获取进程id,我使用以下方法 public long getProcessID(Process p) { long pid = -1; try { if (p.getClass().getName().equals("java.lang.UNIXProcess")) { Field f = p.
public long getProcessID(Process p)
{
long pid = -1;
try
{
if (p.getClass().getName().equals("java.lang.UNIXProcess"))
{
Field f = p.getClass().getDeclaredField("pid");
f.setAccessible(true);
result = f.getLong(p);
f.setAccessible(false);
}
}
catch(Exception ex)
{
pid = -1;
}
return pid;
}
我是新手。我有什么地方做错了吗?还是我做错了什么?
任何帮助或建议都将不胜感激。谢谢。您看过了吗。它一点也不优雅,但似乎是你想要做的一个例子