大量のメモリを使用するコードを書いたので、出力を監視しています。結果はちょっと面白いです、私がオブジェクトを継続的に割り当てているのに、なぜ私の空きメモリが減少し、増加するのか、そしてなぜそれが値でスタックするのか、誰かが私に説明できますか?
これが私の監視コードです:
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