有人能告诉我如何使用JConsole或VisualVM测量堆转储所花费的时间吗?



我正在尝试分析尝试为使用接近3 GB堆内存的应用程序进行堆转储对性能的影响。这是为了决定和理解我是否应该启用将堆转储作为监视内存泄漏的主动措施,而不是最后的被动措施。以前有人调查过这种事吗。是这样,你能帮我一下吗?

JVM在堆转储期间停止,因此根据硬件的I/O吞吐量和CPU速度,这可能需要几秒到几十秒的时间。如果您只想获得活动对象,那么您还需要增加完全GC的时间。您可以尝试从命令行运行jmap -dump:live,format=b,file=heap.bin <pid>,看看在您的情况下需要多长时间。

最新更新