假设我正在执行一个没有并行运行垃圾收集的jvm。那是当GC执行我的主线程时停止。
有没有办法可以指定调用GC的当前时刻运行的方法?我知道我可以获得有关时间的信息,但这还不够。 我假设这样的分析信息对于JVM来说很容易提供,因为它只是返回停止线程的每个堆栈的最顶层元素(堆栈帧)。
感谢。
答案 0 :(得分:4)
我想你想确保垃圾收集不会影响你的基准测试。 一些想法:
答案 1 :(得分:2)
一般没有。 如果那么您可以使用特定于供应商的扩展程序。
问题是,为什么你想知道?
答案 2 :(得分:0)
如果您提供了对JMX的访问权限,您可以看到内存消耗以及存在尖峰的地方还有垃圾收集。
查看正在运行的方法并不精确,但是从堆栈的顶部你可以总是得到String.equals()并且知道什么。