<分区>
像 YourKit 或 JProfiler 这样的 Java 分析器几乎总是有一个按钮,上面写着“Perform GC”。该按钮上的实际文本对于这个问题无关紧要。此外,当我们在这些工具中拍摄堆快照时,JVM 似乎正在执行垃圾收集。但我知道 System.gc()
实际上并不能保证垃圾回收。那么,每次单击特殊按钮或拍摄堆快照时,这些分析器工具实际上如何确定性地执行 GC?他们是否在内部调用了一些非 Java native 方法来绕过 System.gc()
调用不会每次都强制执行 GC 的限制?