调用System.gc()在所有用户定义的方法中,这是一个好的实践吗?

22 浏览
0 Comments

调用System.gc()在所有用户定义的方法中,这是一个好的实践吗?

在所有的Java方法中调用System.gc()是一个好的实践吗?

例如:我有一个类。在所有函数的返回语句之前,我尝试调用System.gc()函数。这样做正确吗?

admin 更改状态以发布 2023年5月25日
0
0 Comments

在应用程序代码中调用System.gc()是一个不好的主意。经常调用它是一个可怕的主意。

运行垃圾回收是一个相对昂贵的操作,特别是当它在不必要运行时运行时。而应用程序很少有可用的信息来知道何时需要运行它。

Java运行时更好地掌握了何时以及如何高效地运行垃圾回收器。请让它自己做出这个决定。

参考:


例子:我有一个类。在所有的函数返回语句之前,我试图调用System.gc()函数。这样做对吗?

绝对不行。


1 - 在生产代码中有一两个边缘情况下,调用System.gc()是有道理的。然而,这只是个小例外。

0
0 Comments

不需要调用 System.gc(),因为垃圾回收是自动的,JVM知道它在做什么。

就像manouti所说,这个方法只是一个建议。曾经可能通过多次调用 System.gc() 来“强制”运行GC,但总的来说,不用担心垃圾收集器的问题。

如果你需要影响GC的工作方式,可以通过提供命令行参数来选择不同的收集算法,并调整参数,如此处所述。

0