完美解決PermGen space異常的問(wèn)題
開發(fā)中遇到Eclipse報(bào)錯(cuò):java.lang.OutOfMemoryError: PermGen space。
PermGen space百度翻譯為:永久區(qū)域內(nèi)存不足。
1. 先來(lái)一張jvm結(jié)構(gòu)圖:
內(nèi)存不足問(wèn)題一般都是發(fā)生在'堆‘上,GC作用區(qū)域也是在'堆‘上。
2. 這個(gè)'堆‘又劃分成了好幾塊區(qū)域,包括:
新生代:包括伊甸園區(qū)和存活區(qū)。
老年代:
永久帶:jdk1.8后變成元空間,元空間不再占用堆中的空間,而永久帶卻是在堆中開辟空間。
可以發(fā)現(xiàn),堆中就有個(gè)永久區(qū)。永久區(qū)的內(nèi)存溢出,其實(shí)就是堆的內(nèi)存不夠用。
只需要調(diào)大堆的內(nèi)存大小就可以解決問(wèn)題。
3. 調(diào)整堆大小的參數(shù):
-Xms256m -Xmx1024m
-Xms:堆的初始化大小,這里設(shè)置成了256m.
-Xmx:堆最大的大小,這個(gè)設(shè)置成了1024m.
這里面就存在了一個(gè)可伸縮的空間,而這個(gè)空間的存在會(huì)損耗服務(wù)的性能。因?yàn)閿U(kuò)容和釋放空間都是有性能損耗的。
最好的辦法就是:-Xms和-Xmx設(shè)置成同樣的大小。這樣就不存在可伸縮的空間了。
4. jvm參數(shù)的配置位置。
a. 如果是使用tomcat服務(wù):
修改tomcat/bin目錄下的catalina.bat。(windows環(huán)境下修改文件catalina.bat, linux環(huán)境下修改文件catalina.sh)
配置在文件的第一行:
b.如果是eclipse
修改eclipse的Run Configurations。(如果是debug模式,修改Debug Configurations。)
寫在此處,方便拷貝:
-Xms256m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=512m
c.如果已經(jīng)被配置成了服務(wù)
這種情況,就需要修改注冊(cè)表了。
c1. regedit命令打開注冊(cè)表。
c2. 找到配置的tomcat服務(wù)。
修改:JvmMs,JvmMx,Options里面的參數(shù)值。
c3. 修改完畢后需要重啟服務(wù)。
d. Eclipse的配置文件eclipse.ini中也可以配置jvm參數(shù)。
-vmargs -Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512M
至此,內(nèi)存溢出的問(wèn)題應(yīng)該就解決了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Java實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼生成(后端工具類)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼生成功能中的后端工具類部分,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-10-10Java日期接收?qǐng)?bào)錯(cuò):could?not?be?parsed,?unparsed?text?found?a
在做Java開發(fā)時(shí)肯定會(huì)碰到傳遞時(shí)間參數(shù)的情況,這篇文章主要給大家介紹了關(guān)于Java日期接收?qǐng)?bào)錯(cuò):could?not?be?parsed,?unparsed?text?found?at?index?10的解決辦法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01Java sleep方法及中斷方式、yield方法代碼實(shí)例
這篇文章主要介紹了Java sleep方法及中斷方式、yield方法代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04解析springBoot-actuator項(xiàng)目構(gòu)造中health端點(diǎn)工作原理
這篇文章主要介紹了springBoot-actuator中health端點(diǎn)工作原理,對(duì)spring-boot-actuator的項(xiàng)目構(gòu)造,工作原理進(jìn)行了全面的梳理,側(cè)重health健康檢查部分2022-02-02SpringBoot優(yōu)化啟動(dòng)速度的方法實(shí)現(xiàn)
本篇文章主要介紹了SpringBoot優(yōu)化啟動(dòng)速度的方法實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01