2011-06-14 66 views
0

如何提高應用程序的性能?我的應用程序是用Java,Hibernate,Servlets,Wsdl編寫的,我用於Web服務。我已經在linux機器上執行了一些測試,以便我可以獲得適當的執行TPS。如何提高應用程序的性能

但仍然,我不滿意的表現。

因此,爲此,我應該嘗試提高性能的所有步驟。

加入到上面,我已經執行了代碼覆蓋率,並且在代碼中突出顯示了每個測試和每個服務的寫入錯誤。

個人建議被邀請。

謝謝。

+0

那麼,如果你對錶現不滿意,你是否試圖找出它不理想的地方。恐怕你的陳述就像咆哮一樣。 – 2011-06-14 10:50:35

+0

你究竟做了什麼來衡量表現?是否有任何特定的性能問題要解決?你的應用程序到底做了什麼? – abalogh 2011-06-14 10:52:31

回答

3

配置您的應用程序,並刪除所有瓶頸。根據您的理解,另外或更好的方法,請花上一兩天時間,然後從Java Performance Tuning的新聞稿中閱讀儘可能多的內容。

0

是否與磁盤I/O或網絡I/O相關的性能?在高吞吐量系統中(從數據庫角度來看)Hibernate可能不是最好的選擇。如果你有很多寫操作,我建議你使用不同的機制來寫入數據庫 - 也許簡單地切換到簡單的JDBC可能會加速它?其次,你的web服務是否花了很長時間才能得到結果? SOAP並不是最快的協議 - 你是否看過像REST可能與JSON相結合的東西?

+0

對於服務執行流程的servlet,我只使用JSON。當其他系統調用我的某些服務時,我正在使用wsdl。 – 2011-06-14 11:13:56

+0

並且您是否測量了每個請求的JSON或WSDL的網絡行程? – Liv 2011-06-14 11:14:55

+0

網絡,如我在JSON中已經弄清楚的那樣,但我們如何測量WSDL? – 2011-06-14 11:30:01

1

您應該使用VisualVM,JProfiler等工具監視您的應用程序以確定性能瓶頸。調整應用程序而不知道實際性能問題的位置是沒有意義的。

在專業環境中,我建議dynaTrace可以顯示執行路徑上的性能瓶頸。該工具可以準確顯示應用程序在哪裏花費時間。

+0

我已經使用VisualVm來弄清楚,每個關鍵服務和數據庫命中需要多少時間。有了這些統計數據,我可以說我對服務感到滿意,但對數據庫命中感到不滿。 – 2011-06-14 11:12:43

+0

至少你發現了什麼調整。數據庫調優指南適用於所有主要數據庫。有時創建一個缺失的索引足以解決問題。 – Daniel 2011-06-14 13:02:08

+0

例如,[http://stackoverflow.com/questions/2980359/web-page-database-query-optimization](http://stackoverflow.com/questions/2980359/web-page-database-query-optimization)包括一些減少命中數的建議。一般來說,我建議將緩存作爲減少數據庫命中數的一種好方法。 – s106mo 2011-06-14 19:34:14

相關問題