常見的OOM異常

  • Java.lang.StackOverFlowError
    • 虛擬機棧溢出
  • java.lang.OutOfMemoryError: java heap space
    • 堆區 內存溢出
  • java.lang.OutOfMemoryError: GC overhead limit exceeded
    • 大量資源都用於GC回收了,每次GC後也清理不了多少空間,反覆如此,就拋出此錯誤
  • java.lang.OutOfMemoryError: Direct buffer memory
    • 寫NIO程序經常使用ByteBuffer來讀取或者寫入數據,這是一種基於通道-channel 與 緩衝區-buffer的I/O方式
    • 他可以使用Native函數庫直接分配堆外內存,然後通過一個存儲在java堆裏面的DirectByteBuffer對象作爲這塊內存的引用進行操作
    • 這樣能在一些場景中顯著提高性能,因爲避免了java堆和Native堆中來回的複製數據
    • 當堆外內存(本地內存)不夠用時,就會拋出此異常
  • java.lang.OutOfMemoryError: unable to create new native thread
    • 應用創建了太多線程了,超過系統承載
    • 你的服務器不允許創建過多的線程
  • java.lang.OutOfMemoryError: Metaspace
    • 元空間內存溢出
    • 元空間使用的是本地內存,類信息創建太多
    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章