1.java7堆內(nèi)存分布
參數(shù)-Xms:初始內(nèi)存大小
參數(shù)-Xmx:最大內(nèi)存大小
2.Java8堆內(nèi)存分布
3.堆內(nèi)存調(diào)優(yōu)
- 調(diào)優(yōu)參數(shù)
代碼:
public static void main(String[] args){
long maxMemory = Runtime.getRuntime().maxMemory() ;//返回 Java 虛擬機(jī)試圖使用的最大內(nèi)存量。
long totalMemory = Runtime.getRuntime().totalMemory() ;//返回 Java 虛擬機(jī)中的內(nèi)存總量。
System.out.println(“MAX_MEMORY = ” + maxMemory + “(字節(jié))、” + (maxMemory / (double)1024 / 1024) + “MB”);
System.out.println(“TOTAL_MEMORY = ” + totalMemory + “(字節(jié))、” + (totalMemory / (double)1024 / 1024) + “MB”);
}
- 調(diào)整內(nèi)存大小
發(fā)現(xiàn)默認(rèn)的情況下分配的內(nèi)存是總內(nèi)存的“1 / 4”、而初始化的內(nèi)存為“1 / 64”
參數(shù)調(diào)整:-Xms1024m -Xmx1024m -XX:+PrintGCDetails
- 運(yùn)行后結(jié)果(Java7)
- 內(nèi)存調(diào)小,出現(xiàn)OOM
代碼:
String str = “www.atguigu.com” ;
while(true)
{
str += str + new Random().nextInt(88888888) + new Random().nextInt(999999999) ;
}
調(diào)整內(nèi)存大?。?Xms8m -Xmx8m -XX:+PrintGCDetails
運(yùn)行結(jié)果:
4.內(nèi)存溢出定位
4.1 內(nèi)存溢出定位工具——MAT
4.2 MAT下載
官網(wǎng)訪問地址:https://projects.eclipse.org/projects/tools.mat/downloads
安裝插件
4.2 MAT使用
運(yùn)行參數(shù)-XX:+HeapDumpOnOutOfMemoryError如果出現(xiàn)OOM時導(dǎo)出堆到文件
- 安裝好插件后,調(diào)整參數(shù)-Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError
- 刷新eclipse目錄列表,打開dump文件,查看內(nèi)存溢出分析報告
相關(guān): 上海大數(shù)據(jù)培訓(xùn)哪個值得選擇呢——java培訓(xùn)課程之GC
本文鏈接:
本文章“堆參數(shù)調(diào)優(yōu)_java培訓(xùn)”已幫助 239 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579