使用
之前分享过JVM的基础结构以及如果Jconsole去直观的去查看,现在我们更细的了解一个Jconsole的监控案例。
BigInteger[] pArr = new BigInteger[30000];
pArr[0] = new BigInteger("0");
pArr[1] = new BigInteger("1");
for (int i = 2; i < 30000; i++) {
pArr[i] = pArr[i - 1].add(pArr[i - 2]);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("第" + i + ":" + pArr[i]);
}
![](https://img.haomeiwen.com/i2024663/05d1160483d06423.png)
![](https://img.haomeiwen.com/i2024663/0f7fd0f1558dc7d7.png)
![](https://img.haomeiwen.com/i2024663/9ced5506b0bfa398.png)
![](https://img.haomeiwen.com/i2024663/0bf2dc28ac7e22d7.png)
![](https://img.haomeiwen.com/i2024663/b1e0734ff1858bc8.png)
![](https://img.haomeiwen.com/i2024663/09631813bbd97627.png)
![](https://img.haomeiwen.com/i2024663/2215178c8b9e16e8.png)
![](https://img.haomeiwen.com/i2024663/1ea290918bbe666b.png)
![](https://img.haomeiwen.com/i2024663/f50d20773c843784.png)
![](https://img.haomeiwen.com/i2024663/1a50df109f331f52.png)
问题
一次次的堆内存使用量为什么有较大幅度的变化?
Old Genarition 现象能说明什么?
Eden Space 为什么会越往后越密集?
Survivor Space 为什么会下降?
修改
BigInteger temp1 = new BigInteger("0");
BigInteger temp2 = new BigInteger("1");
BigInteger temp3 = new BigInteger("0");
for (int i = 2; i < 10000; i++) {
temp3 = temp2;
temp2 = temp1.add(temp2);
temp1 = temp3;
try {
Thread.sleep(5);
} catch (Exception e) {
}
System.out.println("第" + i + ":" + temp2);
}
参考
Jconsole—JVM监控性能的利器(1 本地监控)
jconsole工具使用
使用jconsole分析内存情况-JVM
网友评论