产生时间
Java 程序运行时,有时会产生 JavaCore 及 HeapDump 文件,它
一般发生于 Java 程序遇到致命问题的情况下。
有时致命问题发生后,Java 应用不会死掉,还能继续运行;
但有时致命问题发生,Java 进程会死掉;
为了能够保留 Java 应用发生致命错误前的运行状态,JVM 在死掉前
产生两个文件,分别为 JavaCore 及 HeapDump 文件。
有何区别
JavaCore 是关于 CPU 的,而 HeapDump 文件是关于内存的。
JavaCore 文件主要保存的是 Java 应用各线程在某一时刻的
运行的位置,即 JVM 执行到哪一个类、哪一个方法、哪一个
行上。它是一个文本文件,打开后可以看到每一个线程的执行
栈,以 stack trace 的显示。通过对 JavaCore 文件的分析
可以得到应用是否“卡”在某一点上,即在某一点运行的时间太
长,例如数据库查询,长期得不到响应,最终导致系统崩溃等
情况。
HeapDump 文件是一个二进制文件,它保存了某一时刻 JVM
堆中对象使用情况,这种文件需要相应的工具进行分析,如
IBM Heap Analyzer 这类工具。这类文件最重要的作用就
是分析系统中是否存在内存溢出的情况。