我有一个应用程序,我使用系统命令定期(每1~2)分钟收集(Linux)系统信息。当我检查我的进程列表(使用 boolean done = false;
//Process p = null;
while (!done) {
Process p;
try {
p = Runtime.getRuntime().exec("ls /tmp");
p.waitFor();
System.out.println("Done");
// closing the opened filedescriptors/anything
// p.destroy() // not helpful even
// then used the below,, still the same
p.getInputStream().close();
p.getOutputStream().close();
p.getErrorStream().close();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
)时,内存使用百分比不断增加。当程序启动时,使用的百分比为0.5%,而在我检查的第二天,在具有8GB RAM的服务器中为1.4%。我能理解它是不正常的。
为了说明这种行为,我创建了具有最快循环时间的以下代码段,并且只创建了涉及的代码片段。当我运行时,我可以看到内存使用百分比上升非常快(在不到15分钟内0.5%到1.0%)
.container{
border:1px solid;
width: 70%;
display: table;
table-layout: fixed;
}
.el {
border: 1px solid red;
min-width: auto;
display: table-cell;
}
是内存泄漏还是其他什么?我在这里错过了什么吗请指导我们。