JVM元空間(方法區(qū))和棧內(nèi)存溢出原因及解決方案

上一篇 <<<Java基礎(chǔ)-對(duì)象的引用類(lèi)型
下一篇 >>>JVM堆內(nèi)存溢出和內(nèi)存泄露問(wèn)題定位和解決


1.元空間(方法區(qū))溢出

1.1 錯(cuò)誤現(xiàn)象

java.lang.OutOfMemoryError: Metaspace

1.2 原因

方法區(qū)空間已滿(mǎn)

1.3 解決方案

調(diào)整方法區(qū)的配置,參照JVM性能調(diào)優(yōu)的評(píng)估指標(biāo)及調(diào)優(yōu)示例

2.棧內(nèi)存溢出

2.1錯(cuò)誤現(xiàn)象

java.lang.StackOverflowError

2.2代碼演示

public static void count(){
    try {
        count++;
        count();
    } catch (Throwable e) {
        System.out.println("最大深度:"+count);
        e.printStackTrace();
    }
}
執(zhí)行結(jié)果
 默認(rèn)最大深度:11478
 設(shè)置最大調(diào)用深度:-Xss5m
 最大深度:254422
 設(shè)置最大調(diào)用深度:-Xss10m
 最大深度:586522

2.3產(chǎn)生原因

  • 大多是存在遞歸代碼,當(dāng)線(xiàn)程請(qǐng)求的棧深度大于虛擬機(jī)所允許的深度,則拋出StackOverflowError異常;
  • 如果虛擬機(jī)??梢詣?dòng)態(tài)擴(kuò)展,在擴(kuò)展時(shí)無(wú)法申請(qǐng)到足夠的內(nèi)存,就會(huì)拋出OutOfMemoryError異常

2.4如何避免

a.增加棧內(nèi)存
b.減少遞歸深度調(diào)用 通過(guò)一定條件退出


相關(guān)文章鏈接:
<<<JVM整體內(nèi)存結(jié)構(gòu)的圖解,直觀(guān)明了
<<<javap命令查看對(duì)象信息及操作方法在JVM層的實(shí)現(xiàn)原理
<<<javap命令反查匯編指令匯總
<<<ClassLoader類(lèi)加載器順序Demo測(cè)試與雙親委派源碼解讀
<<<自定義SPI和熱部署技術(shù)破壞類(lèi)加載器的雙親委派模式
<<<JVM中對(duì)象如何完成空間分配和初始化工作
<<<JVM堆內(nèi)存溢出和內(nèi)存泄露問(wèn)題定位和解決
<<<JVM常見(jiàn)死鎖問(wèn)題產(chǎn)生原因和多種診斷方式
<<<服務(wù)器CPU飆升為100%問(wèn)題排查及如何避免
<<<JVM內(nèi)存診斷命令和排查工具匯總
<<<JVM新生代老年代算法匯總圖解
<<<JVM垃圾回收不要手動(dòng)System.gc的真正原因
<<<JVM垃圾回收引用計(jì)數(shù)法和根搜索算法圖解
<<<JVM垃圾回收STW(Stop-The-World)代碼演示
<<<JVM垃圾回收器的發(fā)展歷程及使用場(chǎng)景匯總
<<<JVM串行并行垃圾回收器的關(guān)注點(diǎn)
<<<一張圖看懂CMS垃圾回收器的底層原理
<<<G1能作為JDK9默認(rèn)垃圾回收器的優(yōu)勢(shì)分析
<<<CMS和G1的漏標(biāo)問(wèn)題解決及三色標(biāo)記算法圖解
<<<GC中新生代進(jìn)入老年代的方式匯總
<<<GC常用日志參數(shù)配置及分析工具說(shuō)明
<<<FullGC、MinorGC、STW等常見(jiàn)問(wèn)題如何解答
<<<JVM性能調(diào)優(yōu)的評(píng)估指標(biāo)及調(diào)優(yōu)示例

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 8、內(nèi)存泄露和溢出場(chǎng)景及預(yù)防措施 內(nèi)存泄露(memory leak),是指程序在申請(qǐng)內(nèi)存后,無(wú)法釋放已申請(qǐng)的內(nèi)存空...
    脆皮雞大蝦閱讀 1,121評(píng)論 0 0
  • Java堆溢出 Java堆用于存儲(chǔ)對(duì)象實(shí)例,只要不斷地創(chuàng)建對(duì)象,當(dāng)對(duì)象數(shù)量到達(dá)最大堆的容量限制后就會(huì)產(chǎn)生內(nèi)存溢出異...
    xiaolyuh閱讀 417評(píng)論 0 1
  • 久違的晴天,家長(zhǎng)會(huì)。 家長(zhǎng)大會(huì)開(kāi)好到教室時(shí),離放學(xué)已經(jīng)沒(méi)多少時(shí)間了。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,842評(píng)論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開(kāi)了第一次的黨會(huì),身份的轉(zhuǎn)變要...
    余生動(dòng)聽(tīng)閱讀 10,894評(píng)論 0 11
  • 可愛(ài)進(jìn)取,孤獨(dú)成精。努力飛翔,天堂翱翔。戰(zhàn)爭(zhēng)美好,孤獨(dú)進(jìn)取。膽大飛翔,成就輝煌。努力進(jìn)取,遙望,和諧家園。可愛(ài)游走...
    趙原野閱讀 3,521評(píng)論 1 1

友情鏈接更多精彩內(nèi)容