【JVM】轻易别写 System.gc()

System.gc() 触发的是 FGC,
调用 System.gc() 之后,JVM不会马上执行回收,但

通过System.gc()或Runtime.getRuntime()的调用,会显式触发FullGC,同时对老年代和新生代进行回收,尝试回收垃圾。
但它 无法保证马上出发GC

但是,它还是会让JVM尝试去触发,

所以!!!没事不要去调这个方法,不要去干扰JVM 的GC,让JVM自己玩就好了。不要炫技。

如果频繁调用了 System.gc() ,可能会造成频繁的GC,将会是对服务性能造成很大的挑战,产生很大的压力。

肯定不建议的。别写就是了

如果真的需要进行垃圾回收,JVM 会出手的。
如果真的频繁FGC,要么就进行压测监控,调优,调整参数 / 换一个适合的垃圾回收器。
如果内存确实是不够用了,该加内存就加内存,CPU性能不行,就提升CPU。

posted @ 2023-03-01 10:14  aaacarrot  阅读(222)  评论(0编辑  收藏  举报