我可以建议JVM何时进行垃圾回收吗?

时间:2019-02-25 06:40:02

标签: java garbage-collection jvm

我在Java代码中使用了基于事件的框架,并且有一个事件会在没有其他事件发生时触发,比如说这是线程空闲事件。我认为这是进行GC的好时机,因为这段时间进行GC不会影响其他工作。

所以:1,我有什么办法可以做到这一点? 2,我应该这样做吗?

2 个答案:

答案 0 :(得分:1)

要回答您的问题:

您可以告诉JVM启动垃圾回收,但是JVM将决定是否以及何时进行垃圾回收。不再使用的对象将自动收集垃圾。如果您真的想建议JVM运行垃圾回收,则应使用以下代码行:

System.gc();

但是正如我说的那样,当不再需要使用JVM时,JVM将会看到它在需要/需要时的情况。

答案 1 :(得分:0)

1)System.gc()

2)我应该这样做吗?

  

万恶之源在于过早的优化

我怀疑它会有所帮助,而且很有可能会降低性能。您想优化什么?吞吐量还是延迟?您如何衡量?真的很难,就像使用gc一样,您应该模拟一个类似于生产的环境。 System.gc()会执行完整的gc,因此可能会导致较长的停顿,而年轻的短暂停顿是可以接受的。

请注意,G1垃圾收集器已经自动将其自身调整为系统负载。