Java 识别Heapdump中的内存泄漏-无法在JProfiler中查看Heapdump中的分配

Java 识别Heapdump中的内存泄漏-无法在JProfiler中查看Heapdump中的分配,java,memory-leaks,jprofiler,Java,Memory Leaks,Jprofiler,我一直在尝试确定生产应用程序内存泄漏的原因(它抛出OutOfMemoryError并生成Heapdump),但是,我已经确定了一些可能是原因的对象(被引用和未使用的大对象),当我试图查看这些违规对象的分配位置时,我收到以下消息:“查看HPROF快照时此视图不可用”,因此我的问题是,如果分配视图仅可用于实时分析,请提供任何帮助。谢谢。HPROF快照不包含分配对象的任何信息。在拍摄堆快照之前,您必须使用JProfiler分析代理并记录分配数据才能使用此功能。您好Ingo Kegel,谢谢您的回复,这

我一直在尝试确定生产应用程序内存泄漏的原因(它抛出OutOfMemoryError并生成Heapdump),但是,我已经确定了一些可能是原因的对象(被引用和未使用的大对象),当我试图查看这些违规对象的分配位置时,我收到以下消息:“查看HPROF快照时此视图不可用”,因此我的问题是,如果分配视图仅可用于实时分析,请提供任何帮助。谢谢。

HPROF快照不包含分配对象的任何信息。在拍摄堆快照之前,您必须使用JProfiler分析代理并记录分配数据才能使用此功能。

您好Ingo Kegel,谢谢您的回复,这是否意味着无法仅通过分析堆转储来识别分配?在这种情况下,您能推荐一种方法来跟踪内存泄漏,只需让堆转储可用吗?(由于开销和法律问题,我们无法在生产环境中安装代理)。非常感谢。allocations视图只是一个工具,您可以在没有它的情况下跟踪内存泄漏。我将启动“最大对象”视图。再次感谢Ingo Kegel的回复,在生产中加载JProfiler代理是否是一个坏主意(因为开销)?使用jcmd命令拍摄快照,然后在JProfiler中打开以进行分析是否更好?谢谢。使用jpdump命令行实用程序,您可以提取HPROF快照(与jcmd类似,只是更方便)。但是,您将无法获得所需的分配信息。如果需要这些信息来解决问题,可以在生产中使用分析代理。