52 java heap websphere multithreading dump
有人能告诉我javacore,线程转储和堆转储之间的确切区别吗?在哪种情况下使用这些?
小智 53
线程转储是所有活动线程堆栈的转储.因此,在某个时间点分析应用程序的用途,以及在诊断某些类型的"执行"问题(例如线程死锁)时是否有用.
堆转储是Java堆内存状态的转储.因此,分析应用程序在某个时间点对内存的使用情况非常有用,因此可以方便地诊断一些内存问题,并且可以在诊断内存泄漏时间隔进行.
这就是他们的"原始"术语,可以通过多种方式提供.通常用于描述来自JVM和app服务器的转储文件,在这种形式下,它们是一个低级工具.有用的,如果由于某种原因你不能得到任何其他东西,但你会发现生活更容易使用体面的分析工具来获得类似但更容易剖析信息.
关于WebSphere,javacore文件是一个线程转储,虽然有许多其他信息,例如锁和加载的类以及一些有限的内存使用信息,而PHD文件是堆转储.
如果你想阅读一个javacore文件,你可以手动完成,但有一个IBM工具(BM线程和监视器转储分析器)使它更简单.如果要读取堆转储文件,则需要许多IBM工具之一:MDD4J或Heap Analyzer.
小智 1
任何时候您希望查看内存中保存的内容时都会进行堆转储 内存不足错误 堆转储 - 内存中对象的图片 - 用于内存分析 Java 核心 - 也称为线程转储或 java 转储,用于查看线程活动在给定时间在 JVM 内部。除了线程和堆栈之外,IBM javacore 还应该包含大量附加信息 - 用于确定挂起、死锁以及性能下降的原因 系统核心