解析堆转储文件

问题描述:

我有一个应用程序,我明明创建的对象太多,我得到这个消息:解析堆转储文件

java.lang.OutOfMemoryError: Java heap space Dumping heap to java_pid2468.hprof ... Heap dump file created [1087703293 bytes in 18.711 secs] Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

,但我装在MAT插头,我想看看有多少个对象我已经建立,哪些对象占用最多的内存。 然而,当我想分析HPROF文件,我收到此错误信息:

An internal error occurred during: "Parsing heap dump from 'C:\Users\sekulicd\workspace\Csv_validation_MyIsam\java_pid2468.hprof'". Java heap space

HPROF文件的大小为1087703293个字节,我需要这些问题的答案:

  1. 是解析失败,由于HPROF文件大小?
  2. 我可以解析hprof文件只为那些没有发生错误的项目 “java.lang.OutOfMemoryError:Java heap space”?
  3. 有什么办法解析这个文件(1,087,703,293字节)?

尝试增加堆的大小,即使解析转储,它似乎太小。看看这个post

+0

我的堆最大为371MB。够了吗? – sekulicd 2012-03-02 11:10:18

+0

如果您要处理1GB的转储文件,堆必须大于!尝试1.5GB - 2 GB – 2012-03-02 13:20:38

+1

我意识到,我增加了堆大小,它现在工作正常,谢谢。 – sekulicd 2012-03-02 13:28:16