![](/img/trans.png)
[英]create heap dump from within application, without HotSpotDiagnosticMXBean
[英]Request java heap dump (core dump) from within application
我需要一种从应用程序内请求堆转储的方法 。
基本原理:当我遇到特定的错误条件时,我想转储堆,这样我就可以看到内存中的内容。
但是我想自动执行此操作(例如,当我检测到某些特定条件已经发生时。或者当看门狗不再获得它的ping时。当某些测试失败时)。 因此,我需要一种从应用程序本身转储堆的方法。 我似乎无法用MX bean找到它。 虽然MX Beans可以通过监视器和“拥有同步器”信息,死锁和争用信息提供非常好的堆栈跟踪,但我似乎无法找到请求堆转储的方法。 有没有这样的方式? 或者通过一些间接方式,例如,这些JVisualVM的事情是如何做到的? 人们可以告诉JVM在OutOfMemoryExceptions上转储核心..?
如果在OutOfMemoryError
上转储堆是不够的,那么有一种以HotSpot为依据的方式以编程方式从Java应用程序中转储堆 ,如果可以的话。
如何使用VM选项-XX:+HeapDumpOnOutOfMemoryError
告诉HotSpot VM在内存不足时生成堆转储?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.