java - 分析工具如何在某些按钮单击或拍摄堆快照时执行垃圾收集?

标签 java garbage-collection jvm

<分区>

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

最佳答案

JVM 公开了 JavaTM Virtual Machine Tool Interface ,它允许调试器、分析器和类似工具比您的程序更深入地访问 VM 的内部工作(也有充分的理由)。

关于java - 分析工具如何在某些按钮单击或拍摄堆快照时执行垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18789294/

相关文章:

java - 连接两个java项目

java - 使用后将 "null"分配给每个应用程序中的对象

java - TABLESWITCH 性能提升?

java - 带偏移量的 android sqlite 查询不返回所需的行

JavaMail IMAP IDLE 与轮询可靠性

java - 如何使用 Verlet 积分器避免因时间步长变化而产生的不需要的额外速度

java - Xmx 和 gc 日志数据不匹配

java - 为 JVM 编写语言

java - Java .class 文件的最大大小是多少?

Java 进程在 GC 之前停止