在我的应用程序中,某些部分需要在给定的时间内执行(通常以分钟为单位)。由于应用程序使用大量内存,我发现在某些情况下可以通过运行垃圾收集器(有时长时间)来减少给定时间。是否可以在给定时间段内读取垃圾收集器花费的时间,以便我可以对此使用react并给我的代码更多的执行时间?
我已经尝试过 g1 垃圾收集器,但我注意到一些 jvm 崩溃。在我的例子中,吞吐量很重要,因此我需要知道垃圾收集器何时被调用,这会导致应用程序停止一段时间。
所以我想知道在执行过程中何时调用GC。
最佳答案
-Xloggc:gc.log
-XX:+PrintGCDetails
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCApplicationConcurrentTime
将这些 JVM 标志添加到您的应用程序中。
PrintGCApplicationStoppedTime
显示应用程序在安全点停止的时间。大多数时候它是由 GC“停止世界”引起的,尽管有 other reasons 。
PrintGCApplicationConcurrentTime
是应用程序在不停止的情况下运行的时间
注意:Java 6 尚不支持 GC1
,因此您没有任何值(value)添加它。
关于java - 确定 JVM 垃圾收集器的运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52200049/