可能是重复问题:
在Java中强制进行垃圾回收?
我能通过任何手段强制在Java中进行垃圾回收吗?
System.gc()只是一种建议。它是没有用的。
当我确定某些资源不再使用时,为什么不能强制清理它们呢?
就像C ++中的delete()和C中的free()一样?
当有大量无法重复使用的资源时,这确实会影响性能。我们所能做的就是睡觉(sleep())。
有什么解决方案吗?谢谢
可能是重复问题:
在Java中强制进行垃圾回收?
我能通过任何手段强制在Java中进行垃圾回收吗?
System.gc()只是一种建议。它是没有用的。
当我确定某些资源不再使用时,为什么不能强制清理它们呢?
就像C ++中的delete()和C中的free()一样?
当有大量无法重复使用的资源时,这确实会影响性能。我们所能做的就是睡觉(sleep())。
有什么解决方案吗?谢谢
无法显式指示JVM收集垃圾。只有在系统需要资源时才会执行此操作。
我所知道的唯二可能启动GC的操作如下:
关于我的第二点,请参见此处的答案:Java中的垃圾收集器-将对象设置为空。实质上,如果您不使您不需要的对象可供垃圾收集(通过失去对其的引用),那么垃圾收集器没有运行的理由,因为它不知道任何可用的垃圾。
此外,重要的是考虑为什么/如何内存中的这些对象会影响性能: