2011-06-01 55 views
4

是否有一種工具可以分析大型Java堆轉儲(2GB),如果只有一個可以將1,5GB分配給JVM?我不敢相信轉儲必須完全加載到內存中才能被分析...如何分析大型堆轉儲?

Eclipse MemoryAnalyzer失敗,並且IBM工具也是。

現在我需要使用命令行工具嗎?

+2

在64位操作系統上使用64位虛擬機,並給它足夠的內存。我無法知道其他方式。 – 2011-06-01 10:52:19

+0

YourKit擅長處理大型轉儲。我已經使用它與8 GB轉儲,但在64位機器上。 – 2011-06-01 11:05:37

+0

堆轉儲在32位JVM上如何變大?這是額外的非堆分配嗎? – artbristol 2011-06-01 11:10:13

回答

3

如果是dev服務器,請將最大堆大小限制爲32位操作系統可以處理的內容。如果它在生產中,則需要64位操作系統!如果你無法得到,你可以在服務器上運行jhat(它有一個可以在你自己的PC上訪問的web界面)。

+0

+1很酷的想法,從來沒有想過這個接口。 – Daniel 2011-06-01 16:03:41