亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

最容易引發內存溢出的,就是系統創建出來的對象!

1 對象在Eden區分配

系統運行時,一直不停創建對象,然后大量對象會填滿Eden。?Eden滿,就會觸發一次YGC,然后存活對象進入S區:

程序員由于對象太多!結果溢出了

 

2 高并發場景導致YGC后,存活對象太多

高并發場景,導致YGC后很多請求還沒處理完,存活對象太多,可能就在S區放不下,只能進入Old,Old很快就會滿了:

程序員由于對象太多!結果溢出了

 

一旦Old放滿,就會觸發Full GC。

假設YGC后,有一批存活對象,S放不下,就等著要進入Old,然后Old也滿,就得等Old進行CMS GC,必須回收掉一批對象,才能讓年輕代里存活的一批對象進去。

但Old GC后,依然存活下很多對象,這時若年輕代還有一批對象等著進Old,可Old空間還是不足,咋辦? 只能內存溢出!?

所以這時,Old都已滿,你還要往里面放東西,而且觸發Full GC回收了Old還是沒足夠內存空間,你卻還要放, 那只能給你個內存溢出!JVM崩潰。

3 何時發生堆內存溢出?

有限的內存中放了過多的對象,而且大多數都是存活的,此時即使GC過后還是大部分都存活,所以要繼續放入更多對象已經不可能了,此時只能引發內存溢出。

發生內存溢出的主要場景:

  • 系統承載高并發請求,因請求量過大,導致大量對象都存活,所以要繼續放入新對象,實在不行了,就會引發OOM
  • 系統有內存泄露,即莫名其妙弄了很多對象,結果對象都存活,沒有及時取消對他們的引用,導致觸發GC還是無法回收,也只能引發內存溢出

綜上,一般引發OOM,要不然是系統負載過高,要不然就是有內存泄露。

4 總結

堆內存OOM的根本原因,即對象太多,且都是存活的,即使GC過后還是沒有空間了,此時放不下新的對象,JVM只能選擇崩潰!

分享到:
標簽:對象
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定