1. 程式人生 > >java效能調優的基本思路

java效能調優的基本思路

java效能調優的基本知識  http://wenku.baidu.com/view/0b5e5b08581b6bd97f19eab3.html

Web應用影響效能的集中體現在:網路、CPU、記憶體、IO、資料庫、快取

   應用系統的效能測試通常有如下過程:
     1) 分析效能需求:瞭解系統性能需求,建立效能測試資料模型,分析效能需求,確定合理性能目標;
     2) 制定效能測試計劃:規劃效能測試所需的測試環境、測試程式,測試的人員組織,測試日程等;
     3) 設計場景:設計效能測試的測試案例;
     4) 根據場景編寫程式、編寫指令碼、修改應用系統等;
     5) 執行效能測試:建立測試環境、執行測試案例,記錄測試時的系統的各個可能的引數;
     6) 分析測試結果:根據應用系統表現和測試時的系統記錄,分析發生的問題和測試結果;
     7) 優化效能:提高系統的效能,使系統在測試時有更好的表現;
     8) 效能迴歸測試:驗證系統的優化以及對相關功能模組的影響;
     9) 測試報告:對測試進行總結,記錄已改進的問題及相關改進的修改,制定未解決問題的對策,提出系統執行、維護和改進建議。


確定清晰的效能目標,並按優先順序排列:
  利用科學的測試工具對應用程式進行測試,並記錄測試結果。
  把分散式系統拆分成元件:Web層、業務層、整合層、以及網路傳輸時間,分別進行調優。
  有系統的科學調優
     遵循一定的程式:測試效能→找出瓶頸→假設造成瓶頸的因素→測試假設是否成立→修改應用→再次測試效能。
     確定影響效能的因素:CPU、Memory還是IO。
     找出主要的瓶頸,首先解決最容易的,再重複測試。
     一次修改一個瓶頸,不要對不需要的地方進行調優。
     提高CPU效能:更快的程式碼、SQL,更好的演算法,減少短期生存的物件。
     提高記憶體效能:減少或減小長期生存的物件。
     提高IO效能:重新設計應用,減少IO的互動。
  優化完成之後,進行QA測試。
  在程式碼中記錄優化的地方,並對舊程式碼進行註釋。
  網路出現wait_time問題 解決辦法 網路調參:設定/proc/sys/net/ipv4/tcp_tw_recycle為1,加快TIME_WAIT狀態回收