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

标签 java garbage-collection garbage

在我的应用程序中,某些部分需要在给定的时间内执行(通常以分钟为单位)。由于应用程序使用大量内存,我发现在某些情况下可以通过运行垃圾收集器(有时长时间)来减少给定时间。是否可以在给定时间段内读取垃圾收集器花费的时间,以便我可以对此使用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/

相关文章:

garbage-collection - JVM 中的安全点

javascript - 这个垃圾收起来了吗?

c++ - 如何处理堆内存垃圾?

c - 在我的字符串中获取垃圾

java - 每 1 秒打印一次数组

java - 在 Java 中使用拨号调制解调器或 GSM 调制解调器

java - 想要为 OkHttp 做出贡献,但无法使用 Maven 将代码导入 IntelliJ

java - 将值和标签设置为 JComboBox

java - 为什么我在使用 G1GC 时会变高 `Ref Proc` 次

java - 当键已经存在时,映射允许 putIfAbsent 而不创建值