編輯推薦
市麵上介紹Java的書有很多,但專注於Java性能的並不多,能遊刃有餘地展示Java性能優化難點的更是鳳毛麟角,本書即是其中之一。通過使用JVM和Java平颱,以及Java語言和應用程序接口,本書詳盡講解瞭Java性能調優的相關知識,幫助讀者深入理解Java平颱性能的各個方麵,使程序如虎添翼。
通過閱讀本書,你可以: 運用四個基本原則大程度地提升性能測試的效果 使用JDK中自帶的工具收集Java應用的性能數據 理解JIT編譯器的優缺點 調優JVM垃圾收集器以減少對程序的影響 學習管理堆內存和JVM原生內存的方法 瞭解如何大程度地優化Java綫程及同步的性能 解決Java EE和Java SE應用程序接口的性能問題 改善Java驅動的數據庫應用程序的性能
內容簡介
本書對Java 7和Java 8中影響性能的因素展開瞭全麵深入的介紹,講解傳統上影響應用性能的JVM特徵,包括即時編譯器、垃圾收集、語言特徵等。內容包括:用G1垃圾收集器應用的吞吐量;使用Java飛行記錄器查看性能細節,而不必藉助專業的分析工具;堆內存與原生內存實踐;綫程與同步的性能,以及數據庫性能實踐等。
作者簡介
Scott Oaks是Oracle公司的一位架構師,專注研究Oracle中間件軟件的性能。加入Oracle之前,他曾於Sun Microsystem公司任職多年,在多個技術領域都有建樹,包括SunOS的內核、網絡程序設計、Windows係統的遠程方法調用(RPC)以及OPEN LOOK虛擬窗口管理器。1996年,Scott成為Sun公司的Java布道師,並於2001年加入Sun公司的Java性能小組——從那時起他就一直專注於Java的性能提升。此外,Scott也在O'Reilly齣版社齣版瞭多部書籍,包括Java Security、Java Threads、JXTA in a Nutshell和Jini in a Nutshell。
目錄
推薦序 xi
前言 xii
第1章 導論 1
1.1 概述 2
1.2 平颱版本約定 2
1.3 全麵的性能調優 4
1.3.1 編寫更好的算法 4
1.3.2 編寫更少的代碼 4
1.3.3 老調重彈的過早優化 5
1.3.4 其他:數據庫很可能就是瓶頸 6
1.3.5 常見的優化 7
1.4 小結 8
第2章 性能測試方法 9
2.1 原則1:測試真實應用 9
2.1.1 微基準測試 9
2.1.2 宏基準測試 13
2.1.3 介基準測試 15
2.1.4 代碼示例 16
2.2 原則2:理解批處理流逝時間、吞吐量和響應時間 19
2.2.1 批處理流逝時間 19
2.2.2 吞吐量測試 20
2.2.3 響應時間測試 20
2.3 原則3:用統計方法應對性能的變化 23
2.4 原則4:盡早頻繁測試 26
2.5 小結 28
第3章 Java性能調優工具箱 29
3.1 操作係統的工具和分析 29
3.1.1 CPU使用率 29
3.1.2 CPU運行隊列 32
3.1.3 磁盤使用率 33
3.1.4 網絡使用率 34
3.2 Java監控工具 35
3.2.1 基本的VM信息 36
3.2.2 綫程信息 39
3.2.3 類信息 39
3.2.4 實時GC分析 39
3.2.5 事後堆轉儲 39
3.3 性能分析工具 39
3.3.1 采樣分析器 40
3.3.2 探查分析器 41
3.3.3 阻塞方法和綫程時間綫 42
3.3.4 本地分析器 44
3.4 Java任務控製 45
3.4.1 Java飛行記錄器 46
3.4.2 開啓JFR 52
3.4.3 選擇JFR事件 54
3.5 小結 56
第4章 JIT編譯器 58
4.1 JIT 編譯器:概覽 58
4.2 調優入門:選擇編譯器類型(Client、Server 或二者同用) 61
4.2.1 優化啓動 62
4.2.2 優化批處理 63
4.2.3 優化長時間運行的應用 64
4.3 Java和JIT編譯器版本 64
4.4 編譯器中級調優 67
4.4.1 調優代碼緩存 67
4.4.2 編譯閾值 68
4.4.3 檢測編譯過程 70
4.5 高級編譯器調優 73
4.5.1 編譯綫程 73
4.5.2 內聯 74
4.5.3 逃逸分析 75
4.6 逆優化 76
4.6.1 代碼被丟棄 77
4.6.2 逆優化僵屍代碼 78
4.7 分層編譯級彆 79
4.8 小結 80
第5章 垃圾收集入門 81
5.1 垃圾收集概述 81
5.1.1 分代垃圾收集器 83
5.1.2 GC算法 84
5.1.3 選擇GC算法 87
5.2 GC調優基礎 92
5.2.1 調整堆的大小 92
5.2.2 代空間的調整 95
5.2.3 永久代和元空間的調整 96
5.2.4 控製並發 97
5.2.5 自適應調整 98
5.3 垃圾迴收工具 99
5.4 小結 102
第6章 垃圾收集算法 103
6.1 理解Throughput收集器 103
6.2 理解CMS收集器 109
6.2.1 針對並發模式失效的調優 113
6.2.2 CMS收集器的永久代調優 116
6.2.3 增量式CMS垃圾收集 117
6.3 理解G1垃圾收集器 118
6.4 高級調優 126
6.4.1 晉升及Survivor空間 126
6.4.2 分配大對象 129
6.4.3 AggressiveHeap標誌 136
6.4.4 全盤掌控堆空間的大小 137
6.5 小結 138
第7章 堆內存最佳實踐 140
7.1 堆分析 140
7.1.1 堆直方圖 141
7.1.2 堆轉儲 142
7.1.3 內存溢齣錯誤 146
7.2 減少內存使用 149
7.2.1 減少對象大小 149
7.2.2 延遲初始化 152
7.2.3 不可變對象和標準化對象 156
7.2.4 字符串的保留 157
7.3 對象生命周期管理 160
7.3.1 對象重用 160
7.3.2 弱引用、軟引用與其他引用 165
7.4 小結 175
第8章 原生內存最佳實踐 176
8.1 內存占用 176
8.1.1 測量內存占用 177
8.1.2 內存占用最小化 178
8.1.3 原生NIO緩衝區 178
8.1.4 原生內存跟蹤 179
8.2 針對不同操作係統優化JVM 182
8.2.1 大頁 182
8.2.2 壓縮的oop 185
8.3 小結 187
第9章 綫程與同步的性能 188
9.1 綫程池與ThreadPoolExecutor 188
9.1.1 設置最大綫程數 189
9.1.2 設置最小綫程數 192
9.1.3 綫程池任務大小 193
9.1.4 設置ThreadPoolExecutor的大小 193
9.2 ForkJoinPool 195
9.3 綫程同步 201
9.3.1 同步的代價 202
9.3.2 避免同步 205
9.3.3 僞共享 208
9.4 JVM綫程調優 211
9.4.1 調節綫程棧大小 211
9.4.2 偏嚮鎖 212
9.4.3 自鏇鎖 212
9.4.4 綫程優先級 213
9.5 監控綫程與鎖 213
9.5.1 查看綫程 214
9.5.2 查看阻塞綫程 214
9.6 小結 217
第10章 Java EE性能調優 218
10.1 Web容器的基本性能 218
10.2 綫程池 222
10.3 EJB會話Bean 223
10.3.1 調優EJB對象池 223
10.3.2 調優EJB緩存 225
10.3.3 本地和遠程實例 226
10.4 XML和JSON處理 227
10.4.1 數據大小 227
10.4.2 解析和編組概述 229
10.4.3 選擇解析器 230
10.4.4 XML驗證 235
10.4.5 文檔模型 237
10.4.6 Java對象模型 240
10.5 對象序列化 241
10.5.1 transient字段 241
10.5.2 覆蓋默認的序列化 241
10.5.3 壓縮序列化數據 244
10.5.4 追蹤對象復製 246
10.6 Java EE網絡API 248
10.7 小結 250
第11章 數據庫性能的最佳實踐 251
11.1 JDBC 251
11.1.1 JDBC驅動程序 252
11.1.2 預處理語句和語句池 253
11.1.3 JDBC連接池 255
11.1.4 事務 256
11.1.5 結果集的處理 262
11.2 JPA 264
11.2.1 事務處理 264
11.2.2 對JPA的寫性能進行優化 267
11.2.3 對JPA的讀性能進行優化 268
11.2.4 JPA緩存 271
11.2.5 JPA的隻讀實體 276
11.3 小結 277
第12章 Java SE API技巧 278
12.1 緩衝式I/O 278
12.2 類加載 280
12.3 隨機數 284
12.4 Java原生接口 285
12.5 異常 287
12.6 字符串的性能 290
12.7 日誌 291
12.8 Java集閤類API 292
12.8.1 同步還是非同步 293
12.8.2 設定集閤的大小 294
12.8.3 集閤與內存使用效率 295
12.9 AggressiveOpts標誌 296
12.9.1 替代實現 296
12.9.2 其他標誌 297
12.10 Lambda錶達式和匿名類 297
12.11 流和過濾器的性能 300
12.12 小結 302
附錄A 性能調優標誌摘要 303
作者簡介 312
關於封麵 312
前言/序言
Java性能權威指南 epub pdf mobi txt 電子書 下載 2024
Java性能權威指南 下載 epub mobi pdf txt 電子書