确定JVM垃圾收集器的运行时

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了确定JVM垃圾收集器的运行时相关的知识,希望对你有一定的参考价值。

在我的应用程序中,某些部件需要执行一段时间(通常以分钟为单位)。由于应用程序使用了大量内存,我发现在某些情况下,通过运行垃圾收集器(有时长时间)可以减少给定时间。是否有可能在给定时间段内读取垃圾收集器花费的时间,以便我可以对此做出反应并为我的代码提供更多执行时间?

我已经尝试过g1垃圾收集器但是我发现了一些jvm崩溃。吞吐量在我的情况下很重要,所以我需要知道何时调用垃圾收集器,这会使应用程序停止一段时间。

所以我想知道在执行期间何时调用GC。

答案
-Xloggc:gc.log
-XX:+PrintGCDetails
-XX:+PrintGCApplicationStoppedTime 
-XX:+PrintGCApplicationConcurrentTime

将这些JVM标志添加到您的应用程序中。

PrintGCApplicationStoppedTime显示应用程序在安全点停止的时间。尽管有other reasons,但大部分时间它都是由GC“阻止世界”引起的。

PrintGCApplicationConcurrentTime是应用程序在不停止的情况下运行的时间

注意:Java 6还不支持qazxsw poi,所以没有任何价值可以添加它。

以上是关于确定JVM垃圾收集器的运行时的主要内容,如果未能解决你的问题,请参考以下文章

JVM高级特性-垃圾收集之判断对象存活算法

JVM-GC算法以及常用的垃圾收集器

JVM: 垃圾收集器与内存分配策略

JVM03------垃圾收集(下)

JVM垃圾收集器

一个性能较好的JVM参数配置