Java的垃圾回收機(jī)制給了程序猿便利,我們可以不需要顯式釋放資源。但想高枕無憂卻是不能,OOM像個隱藏在暗處的幽(hua)靈(nong),威脅著可憐、弱小又漂亮的程序猿。
站在用戶的角度思考問題,與客戶深入溝通,找到墊江網(wǎng)站設(shè)計與墊江網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋墊江地區(qū)。一般來說,一個健康的程序,它是不應(yīng)該出現(xiàn)OOM的。內(nèi)存里的對象從生到死,井然有序。但由于一些人為的失誤,往往會讓一些對象逃過GC的制裁,跳出GC外,不在垃圾中。這個時候,內(nèi)存泄漏就發(fā)生了。
內(nèi)存泄露,是指程序在申請內(nèi)存并且用完這塊內(nèi)存后(對象不再需要了),沒有釋放已申請的內(nèi)存空間。少數(shù)偶然的內(nèi)存泄漏,雖然不太好,但問題不大,我們也不至于對那點內(nèi)存摳摳搜搜的。但如果是內(nèi)存不斷泄漏,直到新的對象沒有足夠的空間生成,就會導(dǎo)致OOM。
拋出OOM異常
當(dāng)程序拋出OutOfMemoryError,如果你自認(rèn)不是太摳,給了這個程序足夠的空間,那么可以懷疑有內(nèi)存泄漏
內(nèi)存持續(xù)上升
一個健康的程序應(yīng)該有平穩(wěn)的新陳代謝,內(nèi)存占用應(yīng)該維持在一定范圍。但如果內(nèi)存持續(xù)飆升,甚至到達(dá)了一個危險的值,那么可以懷疑有內(nèi)存泄漏。
查看GC情況
首先獲取到應(yīng)用的pid,可以使用java的jps命令,或者ps -ef|grep 應(yīng)用名關(guān)鍵詞
可以看到Eden(E)持續(xù)造對象,并且滿了之后,老年代(O)增加,E區(qū)騰空后繼續(xù)造對象。(程序多執(zhí)行一段時間,或者造對象速度提快點,最終會拋出OOM)
查看存活對象
根據(jù)存活對象的不正常增長情況,分析程序中哪些地方用到了這種對象,也可以大致推斷出可能的內(nèi)存泄漏處。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。