如何提高應用程序的性能?我的應用程序是用Java,Hibernate,Servlets,Wsdl編寫的,我用於Web服務。我已經在linux機器上執行了一些測試,以便我可以獲得適當的執行TPS。如何提高應用程序的性能
但仍然,我不滿意的表現。
因此,爲此,我應該嘗試提高性能的所有步驟。
加入到上面,我已經執行了代碼覆蓋率,並且在代碼中突出顯示了每個測試和每個服務的寫入錯誤。
個人建議被邀請。
謝謝。
如何提高應用程序的性能?我的應用程序是用Java,Hibernate,Servlets,Wsdl編寫的,我用於Web服務。我已經在linux機器上執行了一些測試,以便我可以獲得適當的執行TPS。如何提高應用程序的性能
但仍然,我不滿意的表現。
因此,爲此,我應該嘗試提高性能的所有步驟。
加入到上面,我已經執行了代碼覆蓋率,並且在代碼中突出顯示了每個測試和每個服務的寫入錯誤。
個人建議被邀請。
謝謝。
配置您的應用程序,並刪除所有瓶頸。根據您的理解,另外或更好的方法,請花上一兩天時間,然後從Java Performance Tuning的新聞稿中閱讀儘可能多的內容。
是否與磁盤I/O或網絡I/O相關的性能?在高吞吐量系統中(從數據庫角度來看)Hibernate可能不是最好的選擇。如果你有很多寫操作,我建議你使用不同的機制來寫入數據庫 - 也許簡單地切換到簡單的JDBC可能會加速它?其次,你的web服務是否花了很長時間才能得到結果? SOAP並不是最快的協議 - 你是否看過像REST可能與JSON相結合的東西?
對於服務執行流程的servlet,我只使用JSON。當其他系統調用我的某些服務時,我正在使用wsdl。 – 2011-06-14 11:13:56
並且您是否測量了每個請求的JSON或WSDL的網絡行程? – Liv 2011-06-14 11:14:55
網絡,如我在JSON中已經弄清楚的那樣,但我們如何測量WSDL? – 2011-06-14 11:30:01
您應該使用VisualVM,JProfiler等工具監視您的應用程序以確定性能瓶頸。調整應用程序而不知道實際性能問題的位置是沒有意義的。
在專業環境中,我建議dynaTrace可以顯示執行路徑上的性能瓶頸。該工具可以準確顯示應用程序在哪裏花費時間。
我已經使用VisualVm來弄清楚,每個關鍵服務和數據庫命中需要多少時間。有了這些統計數據,我可以說我對服務感到滿意,但對數據庫命中感到不滿。 – 2011-06-14 11:12:43
至少你發現了什麼調整。數據庫調優指南適用於所有主要數據庫。有時創建一個缺失的索引足以解決問題。 – Daniel 2011-06-14 13:02:08
例如,[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
那麼,如果你對錶現不滿意,你是否試圖找出它不理想的地方。恐怕你的陳述就像咆哮一樣。 – 2011-06-14 10:50:35
你究竟做了什麼來衡量表現?是否有任何特定的性能問題要解決?你的應用程序到底做了什麼? – abalogh 2011-06-14 10:52:31