[英]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.