《Java性能調優》學習筆記(1)

  • 性能的參考指標
    • 執行時間 -- 從代碼開始運行到結束的時間
    • CPU時間 -- 函數或者線程佔用CPU的時間
    • 內存分配 -- 程序在運行時佔用內存的狀況
    • 磁盤吞吐量 -- 描述IO的使用狀況
    • 網絡吞吐量 -- 描述網絡的使用狀況
    • 響應時間 -- 系統對某用戶行爲或者時間作出的響應時間
  • 性能的瓶頸資源可能有:
    • 磁盤IO
    • 網絡操做
    • CPU
    • 異常 -- 對Java應用來講,異常的補貨和處理是很是消耗資源的,若是程序高頻率的對異常處理會對總體性能有影響
    • 數據庫
    • 鎖競爭 -- 增長上下文切換的開銷
    • 內存
  • 性能調優的層次
    • 設計調優 -- 宏觀調優,開發以前設計出合理方案,直接決定產品品質,能事先規避問題。設計優化時,設計人員要熟悉設計方法,設計模式,基本性能組件和經常使用的優化思想。
    • 代碼調優 -- 微觀調優,注重實現方式的性能差別
    • JVM調優 -- 開發後期記性,須要對JVM的運行原理和基本內存結構有必定的瞭解。若是堆內存的結構,GC的種類等
    • 數據庫調優
      • 應用層對SQL語句進行優化   -- SQL語句的優化
      • 對數據庫進行優化  --  設計良好的表結構
      • 對數據庫軟件進行優化  --  例如設置合理大小的共享池,緩存緩衝區或者PGA等
    • 操做系統調優 -- 好比UNIX中共享內存段,信號量,共享內存最大值等
相關文章
相關標籤/搜索