diff --git a/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/CoreDump.c b/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/CoreDump.c new file mode 100644 index 0000000000..4a8b2c2b83 --- /dev/null +++ b/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/CoreDump.c @@ -0,0 +1,15 @@ +#include +#include "CoreDump.h" + +void core() { + int *p = NULL; + *p = 0; +} + +JNIEXPORT void JNICALL Java_CoreDump_core (JNIEnv *env, jobject obj) { + core(); +}; + +void main() { +} + diff --git a/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/CoreDump.h b/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/CoreDump.h new file mode 100644 index 0000000000..3b0e34b77d --- /dev/null +++ b/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/CoreDump.h @@ -0,0 +1,21 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class CoreDump */ + +#ifndef _Included_CoreDump +#define _Included_CoreDump +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: CoreDump + * Method: core + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_CoreDump_core + (JNIEnv *, jobject); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/CoreDump.java b/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/CoreDump.java new file mode 100644 index 0000000000..17725ee567 --- /dev/null +++ b/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/CoreDump.java @@ -0,0 +1,13 @@ +package com.baeldung.dumps; + +public class CoreDump { + static { + System.loadLibrary("nativelib"); + } + + public static void main(String[] args) { + new CoreDump().core(); + } + + private native void core(); +} diff --git a/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/HeapDump.java b/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/HeapDump.java new file mode 100644 index 0000000000..c117c4f9a9 --- /dev/null +++ b/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/HeapDump.java @@ -0,0 +1,19 @@ +package com.baeldung.dumps; + +import java.util.ArrayList; +import java.util.List; + +public class HeapDump { + public static void main(String[] args) { + List numbers = new ArrayList<>(); + + try { + while (true) { + numbers.add(10); + } + } catch (OutOfMemoryError e) { + System.out.println("Out of memory error occurred!"); + } + } + +} diff --git a/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/ThreadDump.java b/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/ThreadDump.java new file mode 100644 index 0000000000..1d76c911de --- /dev/null +++ b/core-java-modules/core-java-perf-2/src/main/java/com/baeldung/dumps/ThreadDump.java @@ -0,0 +1,18 @@ +package com.baeldung.dumps; + +public class ThreadDump { + public static void main(String[] args) { + longRunningTask(); + } + + private static void longRunningTask() { + for (int i = 0; i < Integer.MAX_VALUE; i++) { + if (Thread.currentThread().isInterrupted()) { + System.out.println("Interrupted!"); + break; + } + System.out.println(i); + } + } + +}