[性能調(diào)優(yōu)] out of memory :Heap space

題目其實(shí)取大了……

背景:線上環(huán)境java服務(wù)報(bào)錯(cuò),異常如題out of memory :Heap space
環(huán)境:32位 jdk 1.8

以下所說的解決方案,都是嘗試過的一些手段,我對(duì)jvm只是知道一些皮毛,所以無法深入分析,各位看官且當(dāng)病急亂投醫(yī)時(shí)的一個(gè)參考吧。

(1) 定位到拋異常的代碼段,把可疑對(duì)象用完后顯示置為null,想著這樣能盡快讓該對(duì)象被GC回收
(2) 增加堆內(nèi)存設(shè)置,-xms和-xmx
(3) 這個(gè)就是今天要提到的了。。。JIT server模式設(shè)置

JIT(Just In Time,即時(shí)編譯技術(shù))是指當(dāng)jvm運(yùn)行程序時(shí),會(huì)把翻譯過的機(jī)器碼保存起來,以備下次使用。
它有兩種模式,server mode和client mode
server mode 下,java程序啟動(dòng)較慢,程序運(yùn)行過程中,jvm會(huì)做很多性能提升的操作,適合性能較好的服務(wù)器。新生代gc方式是并行,老生代gc方式是并發(fā)。
client mode下,java程序啟動(dòng)較快,適合輕量級(jí)客戶端,新生代,老生代的gc方式都是串行。

設(shè)置方式

64位的jdk只能使用server mode,32位jdk默認(rèn)是client mode,如果要換成server mode,需要做以下步驟:

  1. 打開C:\Program Files (x86)\Java\jre1.8.0_121\lib\i386\jvm.cfg文件,將-server KNOWN放于-client KNOWN之上,如下


    jvmcfg.png
  2. 把jdk下面的jre里的server文件夾拷貝到j(luò)re的bin目錄下


    拷貝server文件夾.png

此次通過方案3,莫名解決了堆內(nèi)存溢出問題。。。程序員總是莫名解決各種bug,哈哈

等我回頭研究下jvm,再補(bǔ)充補(bǔ)充o( ̄︶ ̄)o

最后編輯于
?著作權(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)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 參數(shù)設(shè)置 在Java虛擬機(jī)的參數(shù)中,有3種表示方法用“ps -ef |grep "java"命令,可以得到當(dāng)前Ja...
    九問閱讀 9,281評(píng)論 2 52
  • jvm原理 Java虛擬機(jī)是整個(gè)java平臺(tái)的基石,是java技術(shù)實(shí)現(xiàn)硬件無關(guān)和操作系統(tǒng)無關(guān)的關(guān)鍵環(huán)節(jié),是java...
    AI喬治閱讀 17,568評(píng)論 21 486
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • 掐指一算,從大學(xué)畢業(yè)到工作,已經(jīng)過了近8個(gè)月的時(shí)間。作為一個(gè)運(yùn)維的人員,總覺得自己不專業(yè)。換句話說吧,如果現(xiàn)在公司...
    AdH閱讀 473評(píng)論 0 3
  • 還是喜歡這臺(tái)詞 愛我所愛 行我所行 聽從內(nèi)心 無問西東 是的 要做自己喜歡的事 做適合自己的事 做自己能做的事 面...
    靜軒茶香閱讀 241評(píng)論 0 5

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