2012-03-02 69 views
2

我有一個應用程序,我明明創建的對象太多,我得到這個消息:解析堆轉儲文件

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字節)?

回答

3

嘗試增加堆的大小,即使解析轉儲,它似乎太小。看看這個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