您好,登錄后才能下訂單哦!
總結(jié):在實(shí)際工作中,我們可以直接將初始的堆大小與最大堆大小相等,這樣的好處是可以減少程序運(yùn)行時(shí)垃圾回收次數(shù),從而提高效率
使用示例: -Xmx20m -Xms5m
當(dāng)前堆最大內(nèi)存 20M,堆初始化內(nèi)存 5M
使用示例:-Xms20m -Xmx20m -Xmn1m -XX:SurvivorRatio=2 -XX:+PrintGCDetails -XX:+UseSerialGC
當(dāng)前堆最大內(nèi)存 20M,初始化堆內(nèi)存 20M,新生代最大可用內(nèi)存 1M,Eden 區(qū)域和 form、to 區(qū)域的比例是 2:1:1,打印 GC 日志,使用串行回收
使用實(shí)例:-Xms20m -Xmx20m -XX:SurvivorRatio=2 -XX:NewRatio=2 -XX:+PrintGCDetails -XX:+UseSerialGC
當(dāng)前堆最大內(nèi)存 20M,初始化堆內(nèi)存 20M,Eden 區(qū)域和 form、to 區(qū)域的比例是 2:1:1,新生代和老年代比例是 1:2,打印 GC 日志,使用串行回收
錯(cuò)誤原因:java.lang.OutOfMemoryError: Java heap space 堆內(nèi)存溢出
設(shè)置合適的堆大小:-Xms1m -Xmx100m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError
最后的參數(shù)表示堆內(nèi)存溢出出打印快照
錯(cuò)誤原因:java.lang.StackOverflowError 棧內(nèi)存溢出
虛擬機(jī)棧溢出發(fā)生在遞歸調(diào)用,循環(huán)不會(huì)產(chǎn)生虛擬機(jī)棧溢出,除非循環(huán)里面嵌套遞歸
設(shè)置更大的深度,默認(rèn)深度大概在 10000 左右
-Xss5m 設(shè)置最大調(diào)用深度
內(nèi)存溢出:申請(qǐng)空間超出系統(tǒng)能夠提供的空間大小
內(nèi)存泄露:內(nèi)存泄露是指程序中間動(dòng)態(tài)分配了內(nèi)存,但在程序結(jié)束時(shí)沒(méi)有釋放這部分內(nèi)存,從而造成那部分內(nèi)存不可用的情況,最終導(dǎo)致內(nèi)存溢出
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。