2011-08-03 12 views
2

的條款。剖析Eclipse的本身我要分析Eclipse的內存使用和<em>不</em> Eclipse的下一個程序的內存使用

我有一個Java小程序GWT和公正加載Eclipse工作帶來了內存使用850米......和〜達到1024米時,整個事情爬到蝸牛的步伐,即無法使用。

我已經提高到2048M的Eclipse堆而只是不知何故Eclipse的似乎能夠使用1024米MAX(我使用的Linux操作系統Ubuntu 10.10開JDK)。

請幫忙!

+1

您不能使用visualVM連接到正在運行的Eclipse會話嗎? – dimitrisli

回答

2

剖析了Eclipse的內存使用量,沒有與分析任何其他Java應用程序不同。

只要您使用能夠爲您提供HPROF轉儲的JVM啓動Eclipse,則可以使用通常可用於JVM關聯安裝的jmap實用程序獲取轉儲。

的HPROF轉儲可以稍後使用Eclipse MAT或另一轉儲分析器打開。注意:Eclipse MAT也支持其他轉儲格式,因此您不僅僅限於熱點JVM。

此過程的演練可在this post中找到,其中詳細說明了MAT如何用於分析Eclipse的內存使用情況並精確定位拼寫檢查程序插件的內存消耗情況。

如果要執行活動的分析,那麼你就必須開始與Eclipse用合適的剖析代理相關聯的JVM,然後安裝探查到Eclipse JVM。從一個分析器到另一個,指令會有所不同。

+0

Linux下Ubuntu的open-jdk提供了這個功能嗎? – jldupont

+0

我相信是的,但我想我在幾天前(在Fedora上)遇到了一個涉及OpenJDK版本'jmap'或'jps'的bug。所以最好使用Oracle/Sun JVM。 –

0

嘗試啓動eclipse這個PARAMS

eclipsec -vmargs -Xms256m -Xmx512m -XX:PermSize =128米-XX:MaxPermSize參數=256米

0

你應該在命令行啓動Eclipse調用JVM,而不是使用的exe,這樣你可以用jvisualvm和監視/資料內存使用情況等

由於連接到java程序解釋here運行:

java -jar eclipse/plugins/org.eclipse.equinox.launcher_1.0.0.v20070606.jar 

您可能需要將jar的版本號更改爲3.5。

2

Memory Analyzer (MAT)是您的解決方案。

你只需要安裝它,啓動它,選擇Java程序要分析(即你的日食過程),並享受打獵內存泄漏負責;-)

當然,作爲維尼特說,你的JVM實現必須允許MAT獲得HPROF文件(即在給定時間轉儲JVM內存)。