我写了一个代码,它使用了大量的内存,所以我正在监视它的输出。结果有点有趣,有人能解释一下为什么我的空闲内存会减少而不是增加,尽管我在不断地分配对象,为什么它会以一个值堆叠?
这是我的监控代码:
Thread th = new Thread(new Runnable() {
@Override
public void run() {
while(true){
System.out.println("" + (Runtime.getRuntime().freeMemory()/1024));
try {
Thread.sleep(5000);
} catch (InterruptedException ex) {
Logger.getLogger(FaAlgoritmus.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
});
th.start();
结果:
42454
49666
109869
76995
39779
125981
89814
191056
137835
142766
121279 50221
130072
75460
143199
88164
145557 75224 27234 136953 87933 34991 151526 99113 47005 163787 56278 44491 44491 44491 44491 44491 44491 44491 44491 44491 44489 44489 44489