2011-02-01 62 views
4

我注意到,執行大主要的Junit 3.x的測試套件,使Eclipse來shititself和鎖定。即使我分配了很多堆和燙髮電池(1200米和400米),它也會嗡嗡作響,然後凍結然後繼續,需要相當長的時間。如果我小批量地運行測試,那麼事情就會相當迅速,凍結幾乎不會發生。運行大量的測試,使Eclipse的凍結,凍結繼續等

我已經檢查了內存使用,同時運行的測試,他們是沒有在附近最大爲任何給定的最大堆或燙髮,所以那些不應該是一個問題...

沒有人有技巧如何解決這個問題。

+1

你是不是先試了這個`eclipse.ini`? http://stackoverflow.com/questions/142357/what-are-the-best-jvm-settings-for-eclipse/3275659#3275659 – VonC 2011-02-01 14:29:06

+0

是的,我已經說明了什麼是顯而易見的原因沒有足夠的堆和電燙髮的值。它們足夠大...... – 2011-02-04 21:52:04

+0

@mP:但我提到的`eclipse.ini`不僅僅是堆和燙髮代碼的大小。這些選項的確切組合使得Eclipse能夠在我們的工作站上平穩運行。 – VonC 2011-02-15 04:55:56

回答

0

不允許發表評論,因此在這裏添加它..你已經檢查了內存,因此該選項是關閉的

一些其他的事情嘗試:

我不知道,如果你試圖用打junit上的fork選項。

難道一次又一次重建的目標類?你可以看目標文件夾嗎?

你有沒有嘗試重新創建工作區?只是提出這個,因爲你似乎已經覆蓋了主要問題 - 內存,日誌等。

3

這可能已經是你嘗試過的東西了,但是......如果你正在使用「JUnit插件測試」運行你的單元測試。 ..那麼你在eclispe.ini中對Xmx和MaxPermSize的設置是無用的。

eclipse.ini設置允許您更改當前Eclipse的設置。從這個Eclipse產生的任何Eclipse實例仍將具有默認設置(如Xms40m和Xmx512m)。你也必須改變這些。

打開用於測試的啓動配置(「運行>運行配置...」,選擇啓動單元測試的啓動配置)並轉到「參數」(Arguments)選項卡。在那裏,在「VM Arguments」文本區域中,輸入新的內存設置,就像在eclipse.ini文件中一樣(我使用-Xms256m -Xmx1536m -XX:MaxPermSize=256m用於最昂貴的測試套件......但您可能需要更多)。

雖然可能是嘗試修復單元測試的潛在內存泄漏,但主要問題可能是。你確定你沒有更多的卸載/內存釋放/ ...在tearDown()?在配置文件下運行測試可能會有所幫助(我們使用Yourkit java profiler來完成工作,但這不是免費的,JConsole可能會幫助您,另請參閱http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html)。

0

程序中可能存在某種內存泄漏,只有在運行所有測試時纔會出現。如果您在外部運行測試,您還沒有提及是否會遇到同樣的問題。

我會建議運行一些內存分析器周圍的凍結時間。像MAT http://www.eclipse.org/mat/這樣的東西在過去幫助過我。你也可以嘗試運行多個jstack會話來了解隨着時間的推移發生的事情。