Ste*_*n C 43
Java自动调用垃圾收集器,那么为什么我们需要手动调用垃圾收集?
我们不需要它们.事实上,在大多数情况下,调用System.gc()是有害的应用程序的性能.有关详细解释,请参阅我的回答"为什么调用system gc是一个不好的做法".
什么时候应该使用System.gc()
如果应用程序知道它将进入一个没有其他任何操作的阶段并且用户不太可能注意到垃圾收集,那么也许可以调用以System.gc()努力阻止用户在将来遇到GC暂停.
缺点包括:
System.gc()通常会触发完整的GC,这比"新空间"的GC要长得多.System.gc()在游戏中的"级别"之间进行调用,则需要加载下一级别更长时间.(System.gc()在单元测试和系统调试期间调用也可能是合理的原因.)
Tim*_*der 16
没有必要显式调用垃圾收集,调用System.gc()只是一个建议,JVM可以忽略你的建议.
我能想到的唯一实际用途是