解決OOM:JVM內(nèi)存不足問題
在運行項目的時候,代碼maven等正確的情況下,項目跑不起來報內(nèi)存不足的問題,很有可能就是OOM問題!
什么是OOM?
“Out Of Memory”=“內(nèi)存不足”
官方回答:
- 當 JVM 因為沒有足夠的內(nèi)存來為對象分配空間,并且 垃圾回收器 也已經(jīng)沒有空間可供回收時,就會拋出這個錯誤。(注:非exception,已經(jīng)嚴重到不足以被應用處理)。
舉例:
- 就是你設置的項目需要10內(nèi)存而你只有5,所以報OOM問題。
知識點插入:
- 內(nèi)存泄露:申請使用完的內(nèi)存沒有釋放,導致虛擬機不能再次使用該內(nèi)存,此時這段內(nèi)存就泄露了,因為申請者不用了,而又不能被虛擬機分配給別人用。
- 內(nèi)存溢出:申請的內(nèi)存超出了JVM能提供的內(nèi)存大小,此時稱之為溢出。
OOM出現(xiàn)的原因
- 分配過少:JVM 初始化內(nèi)存小,業(yè)務使用了大量內(nèi)存;或者不同 JVM 區(qū)域分配內(nèi)存不合理
- 內(nèi)存泄漏:某一個對象被頻繁申請,不用了之后卻沒有被釋放,發(fā)生內(nèi)存泄漏,導致內(nèi)存耗盡
OOM的解決方法
直接的解決辦法是將setting->Compile中屬性的值調(diào)大,我這里是調(diào)到了3000

合理設置對外內(nèi)存大小:
根據(jù)應用的實際需求調(diào)整-XX:MaxDirectMemorySize參數(shù),給予足夠的直接內(nèi)存空間。(親測:修改錯誤IDEA會無法啟動,建議使用第一種♥? )
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
java:程序包org.apache.ibatis.annotations不存在報錯解決
這篇文章主要給大家介紹了關于java:程序包org.apache.ibatis.annotations不存在報錯的解決方法,這個錯誤是我在直接導入springboot項目的時候報錯的,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-04-04
RestTemplate Get請求實現(xiàn)bean參數(shù)傳遞詳解
RestTemplate 是從 Spring3.0 開始支持的一個 HTTP 請求工具,也有的稱之為網(wǎng)絡框架,說白了就是Java版本的一個postman,這篇文章主要介紹了詳解RestTemplate 用法,需要的朋友可以參考下2022-11-11
MyBatis動態(tài)sql查詢及多參數(shù)查詢方式
這篇文章主要介紹了MyBatis動態(tài)sql查詢及多參數(shù)查詢方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
SpringBoot項目如何把接口參數(shù)中的空白值替換為null值(推薦)
這篇文章主要介紹了SpringBoot項目如何把接口參數(shù)中的空白值替換為null值(推薦),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01

