java 内存情况_java查看jvm内存使用情况
java查看jvm內(nèi)存使用情況
(2012-03-22 15:50:54)
標(biāo)簽:
jvm
內(nèi)存
虛擬機(jī)
分配
it
java.lang.Runtime類提供了查看當(dāng)前JVM內(nèi)存的使用情況。每個java實例(即虛擬機(jī)實例)只有一個Runtime的實例,通過Runtime.getRuntime()可以得到當(dāng)前虛擬機(jī)中的Runtime實例對象。
Runtime提供3個方法可以獲取當(dāng)前JVM最大可以使用內(nèi)存、當(dāng)前JVM已擁有最大內(nèi)存和剩余未使用內(nèi)存。這3個內(nèi)存指的都是JVM堆內(nèi)存。
Runtime.maxMemory();
Runtime.totalMemory();
Runtime.freeMemory();
首先在JAVA的啟動參數(shù)中加入指定-Xmx100m,設(shè)置JVM堆最大可以使用100m的內(nèi)存。
Runtime run = Runtime.getRuntime();
long max = run.maxMemory();
long total = run.totalMemory();
long free = run.freeMemory();
long usable = max - total + free;
System.out.println("最大內(nèi)存 = " + max);
System.out.println("已分配內(nèi)存 = " + total);
System.out.println("已分配內(nèi)存中的剩余空間 = " + free);
System.out.println("最大可用內(nèi)存 = " + usable);
上面代碼的輸出結(jié)果如下(這些內(nèi)存大小與運行環(huán)境相關(guān))
最大內(nèi)存 = 104071168
已分配內(nèi)存 = 5177344
已分配內(nèi)存中的剩余空間 = 4937280
最大可用內(nèi)存 = 103831104
最大內(nèi)存(maxMemory)是通過啟動JAVA虛擬機(jī)時使用參數(shù)-Xmx100m指定的,而輸出也確實是100m。這表示JVM的堆內(nèi)存最大可以使用104071168字節(jié)。
已分配內(nèi)存(totalMemory)jvm使用的內(nèi)存都是從本地系統(tǒng)獲取的,但是通常jvm剛啟動的時候,并不會向系統(tǒng)申請全部的內(nèi)存。而是根據(jù)所加載的Class和相關(guān)資源的容量來決定的。在本例中,由于只在一個main()主方法中執(zhí)行了上面的幾行簡單的代碼。所以JVM只申請了5177344字節(jié)的內(nèi)存。
已分配內(nèi)存中的剩余空間(freeMemory) 這是相對以分配內(nèi)存(totalMemeory)計算的,相當(dāng)于totalMemory -
已使用內(nèi)存。當(dāng)freeMemory 快要接近0時,以分配的內(nèi)存即將耗盡,JVM會決定再次向系統(tǒng)申請更多的內(nèi)存。
最大可用內(nèi)存 (usable)這是JVM真正還可以再繼續(xù)使用的內(nèi)存(不考慮之后垃圾回收再次得到的內(nèi)存)。由【最大內(nèi)存 - 已分配內(nèi)存
+ 已分配內(nèi)存中的剩余空間】計算得到。
分享:
喜歡
0
贈金筆
加載中,請稍候......
評論加載中,請稍候...
發(fā)評論
登錄名: 密碼: 找回密碼 注冊記住登錄狀態(tài)
昵???稱:
評論并轉(zhuǎn)載此博文
發(fā)評論
以上網(wǎng)友發(fā)言只代表其個人觀點,不代表新浪網(wǎng)的觀點或立場。
總結(jié)
以上是生活随笔為你收集整理的java 内存情况_java查看jvm内存使用情况的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css 高度塌陷_web前端入门到实战:
- 下一篇: PostgreSQL 简单的查询