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

时间:2018-09-06 08:45:30

标签: java garbage-collection garbage

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

我已经尝试过g1垃圾收集器,但是我注意到一些jvm崩溃。吞吐量对于我来说很重要,因此我需要知道何时调用垃圾收集器,这会使应用程序停止一段时间。

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

1 个答案:

答案 0 :(得分:1)

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

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

PrintGCApplicationStoppedTime显示在安全点停止应用程序的时间。尽管有other reasons,但大多数情况下都是由GC“停止世界”引起的。

PrintGCApplicationConcurrentTime是应用程序不停止工作的时间

注意:Java 6尚不支持GC1,因此您没有添加它的价值。