Java性能優(yōu)化權威指南

第一章 方法論

性能分析策略

  • 自頂向下
  • 自底向上

第二章 操作系統(tǒng)性能監(jiān)控

三部曲

  • 性能監(jiān)控:收集或查看應用運行性能數(shù)據
  • 性能分析:對性能監(jiān)控所產生的問題進行回應
  • 性能調優(yōu):改善系統(tǒng)應用響應性或吞吐量等活動

CPU使用率

vmstat命令

  • us:用戶態(tài)CPU使用率
  • sy:內核態(tài)CPU使用率
  • id:CPU空閑率

top命令

CPU調度程序運行隊列

運行隊列是那些已準備好運行,正等待可用CPU的輕量級進程,用于分辨系統(tǒng)是否滿負荷,隊列越長,表示系統(tǒng)已飽和。
vmstat命令

  • r:運行隊列長度

內存使用率

監(jiān)控內存相關屬性,頁調度、頁交換、加鎖、線程上下文切換等。
vmstat命令

  • free:空閑內存
  • si:內存頁換入數(shù)量
  • so:內存頁換出數(shù)量

網絡I/O使用率

nicstat包


磁盤I/O使用率

iostat -xm


第三章 JVM預覽

HotSpot VM三組件

  • VM運行時(Runtimec)
  • JIT編譯器(JIT Compiler)
  • 內存管理器(Memory Manager)

Runtimec

命令行選項

  • 標準選項
  • 非標準選項(-X)
  • 為穩(wěn)定選項(-XX)

第四章 JVM性能監(jiān)控

垃圾回收

  • GC日志分析
  • GCHisto離線分析工具
  • JConsole
  • VisualGC
  • VisualVM

第五章 Java應用性能分析

  • Performance Analyzer
  • NetBeans Profiler

術語

  • 性能分析器(Profiler)
  • 性能文件(Profile)
  • 開銷(Overhead)
  • 調用樹(Call Tree)
  • 過濾器(Filter)

第六章 Java應用性能分析技巧

分類

  • 使用更高效的算法
  • 減少鎖競爭
  • 為算法生成更有效率的代碼

技巧

  • volatile使用
  • 調整數(shù)據結構大小
  • 增加并行性

第七章 JVM性能調優(yōu)入門

調優(yōu)流程

垃圾收集調優(yōu)基礎

性能指標

  • 吞吐量
  • 延遲
  • 內存使用

命令選項

  • -XX:+PrintGCTimeStamps:JVM啟動到垃圾回收開始的時間
  • -XX:PrintGCDetails:提供垃圾收集器相關的統(tǒng)計數(shù)據
  • -Xloggc:<filename>:指定GC日志文件

內存使用

堆空間

  • -Xmx:最大值
  • -Xms:最小值

新生代

  • -XX:NewSize:新生代最小值
  • -XX:MaxNewSize:新生代最大值
  • -Xmn:新生代大小

永久代

  • -XX:PermSize:永久代最小值
  • -XX:MaxPermSize:永久代最大值

調優(yōu)延遲/響應性

優(yōu)化新生代大小

Minor GC的頻率和時間

優(yōu)化老年代大小

Full GC的頻率和時間

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容