在我的应用程序中,某些部分需要在给定的时间内执行(通常以分钟为单位)。由于应用程序使用了大量内存,我发现在某些情况下,可以通过运行垃圾收集器(有时需要很长时间)来减少给定的时间。是否可以读取垃圾收集器在给定时间段花费的时间,这样我就可以对此做出反应,并给我的代码更多的执行时间?
我已经尝试过g1垃圾收集器,但我注意到一些jvm虚拟机崩溃。在我的例子中,吞吐量很重要,所以我需要知道何时调用垃圾收集器,这会使应用程序停止一段时间。
所以我想知道在执行期间GC是什么时候被调用的。
发布于 2018-09-06 16:55:47
-Xloggc:gc.log
-XX:+PrintGCDetails
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCApplicationConcurrentTime将这些JVM标志添加到您的应用程序。
PrintGCApplicationStoppedTime显示应用程序在安全点处停止的时间。大多数时候,它是由GC 'stop the world‘引起的,尽管有other reasons。
PrintGCApplicationConcurrentTime是应用程序不停止工作的时间
注意:Java6还不支持GC1,所以你没有必要添加它。
https://stackoverflow.com/questions/52200049
复制相似问题