亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

錯誤java.lang.OutOfMemoryError:超過GC開銷限制

錯誤java.lang.OutOfMemoryError:超過GC開銷限制

錯誤java.lang.OutOfMemoryError:超過GC開銷限制在執行JUnit測試時,我會收到以下錯誤消息:java.lang.OutOfMemoryError: GC overhead limit exceeded我知道OutOfMemoryError是的,但是GC開銷限制意味著什么?我怎么解決這個問題?
查看完整描述

4 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

此消息意味著,由于某種原因,垃圾收集器占用了過多的時間(默認為進程所有CPU時間的98%),每次運行時恢復的內存非常少(默認為堆的2%)。

這實際上意味著您的程序停止執行任何進度,并且一直忙于只運行垃圾收集。

為了防止應用程序占用CPU時間而不做任何事情,JVM拋出以下內容Error所以你有機會診斷這個問題。

我看到這種情況的罕見情況是,一些代碼在已經非常受內存限制的環境中創建了大量臨時對象和大量弱引用對象。

檢查這篇文章詳情(特別是本部分).


查看完整回答
反對 回復 2019-05-30
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

如果你確定沒有內存泄漏在您的程序中,嘗試:

  1. 增加堆大小,例如

    -Xmx1g.

  2. 啟用并發低暫停收集器

    -XX:+UseConcMarkSweepGC.

  3. 盡可能重用現有對象以節省一些內存。

如有需要,極限檢查可以通過添加選項禁用-XX:-UseGCOverheadLimit到命令行。


查看完整回答
反對 回復 2019-05-30
  • 4 回答
  • 0 關注
  • 13335 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號