aboutsummaryrefslogtreecommitdiff
path: root/spark-common/src/main/java/me/lucko/spark/common/heapdump
diff options
context:
space:
mode:
Diffstat (limited to 'spark-common/src/main/java/me/lucko/spark/common/heapdump')
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDump.java24
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java1
2 files changed, 17 insertions, 8 deletions
diff --git a/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDump.java b/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDump.java
index 975dbb3..955bafe 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDump.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDump.java
@@ -49,18 +49,26 @@ public enum HeapDump {
String outputPathString = outputPath.toAbsolutePath().normalize().toString();
if (isOpenJ9()) {
- Class<?> dumpClass = Class.forName("com.ibm.jvm.Dump");
- Method heapDumpMethod = dumpClass.getMethod("heapDumpToFile", String.class);
- heapDumpMethod.invoke(null, outputPathString);
+ dumpOpenJ9(outputPathString);
} else {
- MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
- ObjectName diagnosticBeanName = ObjectName.getInstance(DIAGNOSTIC_BEAN);
-
- HotSpotDiagnosticMXBean proxy = JMX.newMXBeanProxy(beanServer, diagnosticBeanName, HotSpotDiagnosticMXBean.class);
- proxy.dumpHeap(outputPathString, live);
+ dumpHotspot(outputPathString, live);
}
}
+ private static void dumpOpenJ9(String outputPathString) throws Exception {
+ Class<?> dumpClass = Class.forName("com.ibm.jvm.Dump");
+ Method heapDumpMethod = dumpClass.getMethod("heapDumpToFile", String.class);
+ heapDumpMethod.invoke(null, outputPathString);
+ }
+
+ private static void dumpHotspot(String outputPathString, boolean live) throws Exception {
+ MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
+ ObjectName diagnosticBeanName = ObjectName.getInstance(DIAGNOSTIC_BEAN);
+
+ HotSpotDiagnosticMXBean proxy = JMX.newMXBeanProxy(beanServer, diagnosticBeanName, HotSpotDiagnosticMXBean.class);
+ proxy.dumpHeap(outputPathString, live);
+ }
+
public static boolean isOpenJ9() {
try {
Class.forName("com.ibm.jvm.Dump");
diff --git a/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java b/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java
index 61ffd71..a1ad819 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java
@@ -25,6 +25,7 @@ import me.lucko.spark.common.platform.PlatformInfo;
import me.lucko.spark.proto.SparkProtos;
import me.lucko.spark.proto.SparkProtos.HeapData;
import me.lucko.spark.proto.SparkProtos.HeapEntry;
+
import org.objectweb.asm.Type;
import java.io.ByteArrayOutputStream;