[英]rate beetween gc heap allocation and my java program
我的應用程序拋出java.lang.OutOfMemoryError: GC overhead limit exceeded
錯誤。 我進行了搜索,並獲得了足夠的信息。 甲骨文說:
原因:詳細消息“超出了GC開銷限制”表明垃圾收集器一直在運行,並且Java程序的進度非常緩慢。 進行垃圾回收之后,如果Java進程花費了其大約98%的時間用於垃圾回收,並且正在恢復的內存少於2%,並且到目前為止已經執行了最后5個(編譯時間常數)連續垃圾集合,則引發java.lang.OutOfMemoryError。 通常會拋出此異常,因為活動數據量幾乎無法容納到Java堆中,而新分配的可用空間卻很少。 行動:增加堆大小。 可以通過命令行標志-XX:-UseGCOverheadLimit關閉超出GC開銷限制的java.lang.OutOfMemoryError異常。
我的問題是; 如何跟蹤GC
和Java程序分配的堆。 我嘗試了jstat -gcutil
但是它沒有足夠的信息。 有沒有一種工具可以查看Java程序堆分配與GC
堆分配之間的比率? 感謝您的建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.