2009-10-31 76 views
3

我有一個快速問題,有人可能會回答。我們最近構建了一個在JBoss應用程序服務器上運行的Web服務中引用的Java庫。 Web服務在標準Windows XP機器上的性能令人滿意,整個過程大約需要1.5秒。但是,當我們在Solaris JBoss計算機上部署Web服務時,儘管託管Solaris的虛擬服務器功能更強大,但我們注意到性能顯着下降。當人們預計Windows機器的整體速度會更好時,整個處理時間會增加到3.6秒。 Windows機器是一個簡單的奔騰桌面,Solaris運行在Sun Sparc託管的虛擬服務器上。首先想到的是Garbage Collection,因爲這個庫使用了很多數組,ArrayList和頻繁分配新對象。有沒有人對可能發生的事情有類似的經驗或想法?從Windows到Solaris的Java性能問題JBoss

問候 季米特里斯

+0

你終於找到解釋了嗎? – fglez 2010-03-11 17:10:08

回答

1

沒有,但我會建議你jvisualvm重視,看看那裏的時間花費。

還可以使用標準Solaris工具(如iostat和vmstat)來確定是否有任何硬件資源耗盡。

+0

jvisualvm與JDK 1.6.0_7及更高版本捆綁在一起。 – richj 2009-10-31 12:54:52

1

您需要使用某種形式的分析來測試您的假設。在應用程序服務器之外進行代碼剖析通常要容易得多,除非你有合適的工具可以做到這一點(例如OptimizeIt之類的東西)。

你可以在JBoss環境之外測試你的庫的性能嗎? 如果可以,那麼這是開始的方法。一旦您擁有了測試工具,您就可以開始分析各個組件和子組件,以查看花費的時間。

在測試環境中,執行諸如關閉垃圾回收或增加開始和最大堆大小的實驗要容易得多。

來自實驗的觀察結果將爲您提供關於在哪裏尋找和進一步實驗的新想法。

+0

嗨,感謝您的回覆。實際上,我們已經對我們的圖書館進行了介紹,並在Windows機器上進行了實驗,沒有任何明顯的突出顯示。但是我們並沒有在Solaris機器上做同樣的事情,主要是因爲那裏存在許可問題。我的問題主要是關於人們從Windows到solaris jboss的過去經驗。 – Dimitris 2009-10-31 17:48:23