Вы можете анализировать из дампа кучи ваш код, вы можете использовать jvisualvm или любой другой инструмент. Вы также можете использовать встроенную команду java для того, что захватывает дамп кучи на outOfMemoryError
Параметр командной строки, который генерирует дамп кучи при возникновении java .lang.OutOfMemoryError:
java -XX:+HeapDumpOnOutOfMemoryError
По умолчанию он сохраняет дамп в файле java_pid.hprof в каталоге, где мы запускаем приложение. Если мы хотим указать другой файл или каталог, мы можем установить его в опции HeapDumpPath:
java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<file-or-dir-path>