注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計Java深度調試技術

Java深度調試技術

Java深度調試技術

定 價:¥89.00

作 者: 張民衛(wèi) 著
出版社: 北京大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787301313602 出版時間: 2020-08-01 包裝: 平裝
開本: 16開 頁數: 376 字數:  

內容簡介

  Java系統(tǒng)越來越復雜,且很多系統(tǒng)不允許停機維護,這就給問題的定位帶來了巨大的困難。本書將重點介紹問題定位技巧,借助這些技巧,讀者可以快速找到解決問題的突破口?!”緯灿?5章,內容涉及Java線程堆棧分析、性能瓶頸分析、內存泄漏分析和堆內存設置、并發(fā)和多線程、幽靈代碼、常見的Java陷阱、數據庫、字符集與編碼、JVM運行參數、常用問題定位工具、計算架構與存儲架構、開發(fā)語言等的選擇、設計軟件系統(tǒng)、工程實踐、常見案例等內容?!”緯鴥热葺^為專業(yè),適合有一定Java編程經驗的人員閱讀,尤其是高級程序員、系統(tǒng)架構師等學習使用。本書對提升讀者的工作效率有較大的幫助。

作者簡介

  張民衛(wèi),系統(tǒng)架構師,曾在華為任職11年,主持華為公司所有基于 Java 語言平臺的產品的疑難問題技術攻關工作,所支持產品覆蓋全球130 多個國家。有近20年的Java開發(fā)經驗,對超高可靠性與穩(wěn)定性(99.999%的高可靠性要求)系統(tǒng)有深刻的理解和豐富的實戰(zhàn)經驗。作為技術專家,長期從事網上重大、特大運行事故以及疑難問題的技術攻關工作。

圖書目錄

第 1 章 Java 線程堆棧分析 1
1.1 打印線程堆棧 3
1.2 解讀線程堆棧 4
1.3 線程堆棧分析的三個視角24
1.3 借助線程堆棧進行問題分析26
第 2 章 通過 Java 線程堆棧進行性能瓶頸分析 43
2.1 基本原理分析44
2.2 常見的性能瓶頸問題50
2.3 性能瓶頸分析的手段和工具51
2.4 性能分析的手段總結59
第 3 章 Java 內存泄漏分析和堆內存設置 62
3.1 Java 內存泄漏的背景知識63
3.2 Java 內存泄漏的癥狀81
3.3 Java 內存泄漏的定位和分析83
3.4 Java 堆內存泄漏的解決92
3.5 Java 內存和垃圾的回收設置94
第 4 章 關于并發(fā)和多線程102
4.1 在什么情況下需要加鎖103
4.2 如何加鎖104
4.3 多線程編程易犯的錯誤106
4.4 i++ 這種原子操作是否需要同步保護107
4.5 一個進程擁有的線程多,是否就可以獲得更多的 CPU 107
4.6 合理設置線程的數量107
4.7 關于線程池109
4.8 notify 和 wait 的組合 109
4.9 線程的阻塞 113
4.10 Java 線程的優(yōu)先級 115
4.11 關于多線程的錯誤觀點 115
第 5 章 幽靈代碼116
5.1 由異常而導致的函數非自主退出 117
5.2 wait () 與循環(huán)123
5.3 Double-Checked Locking 單例模式124
5.4 另一種異常陷阱——連續(xù)的關鍵接口調用 125
第 6 章 常見的 Java 陷阱 127
6.1 不穩(wěn)定的 Runtime、getRuntime()、exec ()128
6.2 JDK 自帶 Timer 的適用場合140
6.3 JDK 自帶線程池的陷阱146
6.4 Timer 的使用陷阱146
第 7 章 關于數據庫147
7.1 關于數據庫表死鎖與鎖表的問題148
7.2 Oracle 的鎖表 / 死鎖151
7.3 使用事務的方法153
第 8 章 字符集與編碼 154
8.1 字符集155
8.2 編碼155
8.3 編碼的識別157
8.4 關于編碼的轉換158
第 9 章 JVM 運行參數解析 160
9.1 Java 運行期參數161
9.2 Java -X 擴展運行參數167
9.3 關于即時編譯器(JIT)171
9.4 -Xrunhprof172
9.5 正確的視角看虛擬機180
第 10 章 常用的問題定位工具181
10.1 遠程調試 182
10.2 UNIX 下的進行分析利器 proc 182
10.3 UNIX 的進程統(tǒng)計工具 prstat187
10.4 UNIX 的剖析工具 188
10.5 路由跟蹤命令 traceroute/tracert 188
10.6 swap 交換分區(qū)管理189
10.7 文件類型 / 符號表 189
10.8 Windows 的相關工具 189
第 11 章 計算架構與存儲架構191
11.1 計算架構——基于無狀態(tài)的設計192
11.2 存儲架構——數據分片196
11.3 存儲架構的總結199
11.4 其他架構的設計建議200
第 12 章 項目生命周期與框架、語言、開源選擇202
12.1 以項目時間尺度衡量開發(fā)語言的選擇 203
12.2 以項目時間尺度衡量開發(fā)框架的使用策略 204
12.3 以項目時間尺度衡量開源的選擇 205
第 13 章 設計“工業(yè)強度”的軟件系統(tǒng)207
13.1 長期運行能力的構建 208
13.2 瞬時峰值 / 過載的應對能力構建 208
13.3 池的合理設計 210
13.4 消息系統(tǒng)的設計模型和關鍵點 215
第 14 章 工程實踐221
14.1 關于高端機器的系統(tǒng)部署 222
14.2 關于物理機與虛擬化 222
14.3 關于 Java 進程監(jiān)控223
14.4 關于 class Loader223
14.5 關于負載控制 224
14.6 關于機器設置多個 IP 的原理 225
14.7 關于日志 225
14.8 異常處理的原則 228
14.9 基于限制的系統(tǒng)部署 / 設計 228
14.10 String 的值不能改變的原因229
14.11 系統(tǒng)出現問題時需要收集的信息 229
14.12 Web Failover 集群的方案 229
14.13 關于可靠性設計232
14.14 實現 JVM Shutdown 鉤子函數232
14.15 截取輸出流233
14.16 將 Linux 進程綁定在特定的 CPU 上運行234
14.17 關于 Java 和 C++ 的互通 234
第 15 章 常見的案例236
15.1 太多打開的文件 237
15.2 java.lang.StackOverflflowError 239
15.3 java.net.SocketException: Broken pipe 240
15.4 HashMap 的 ConcurrentModiftcationException 241
15.5 多線程場合下 HashMap 導致的無限死循環(huán) 242
15.6 Web 系統(tǒng)吊死(掛死)的定位思路 245
15.7 基于消息系統(tǒng)(如 SIP)吊死的定位思路 247
15.8 多線程讀 / 寫 Socket 導致的數據混亂 247
15.9 CPU 使用率過高問題的定位思路248
15.10 系統(tǒng)運行越來越慢的定位思路251
15.11 系統(tǒng)掛死問題的定位思路 252
15.12 關于線程死亡 / 線程跑飛253
15.13 關于虛擬機 core dump255
15.14 系統(tǒng)運行越來越慢問題的定位思路257
15.15 代碼 GC 導致的性能低下 257
15.16 連接池耗盡259
15.17 更改系統(tǒng)時間導致的系統(tǒng)無法正常工作260
15.18 瞬間內存泄漏的定位思路261
15.19 第三方系統(tǒng)能力分析262
15.20 系統(tǒng)性能過低264
15.21 未捕獲的異常導致數據庫鎖表,全系統(tǒng)連鎖宕機267
15.22 單機內存泄漏導致數據庫鎖表,全系統(tǒng)連鎖宕機268
15.23 AIX 下 CPU 使用率被 100% 占用的定位思路270
15.24 Linux 下提高 UDP 吞吐量270
15.25 TIME_WAIT 狀態(tài)下連接不能及時釋放270
15.26 由 SAN 存儲鏈路問題引起的應用層白屏 272
附錄 A JProfiler 內存泄漏的精確定位 275
附錄 B SUN JDK 自帶故障定位280
附 B.1 SUN JDK 命令行選項280
附 B.2 診斷工具的詳細介紹282
附 B.3 內存泄漏問題的定位317
附 B.4 系統(tǒng)崩潰的定位方法327
附 B.5 致命錯誤日志335
附錄 C Solaris 下查找占用指定的端口的進程351
附錄 D 如何在 solaris 下分析 I/O 瓶頸352
附錄 E AIX 下 32 位進程的最大內存占有情況353
附錄 F 關于 TCP/IP354
附錄 G Windows 2003/Windows XP 下一個端口多個監(jiān)聽355
附錄 G 在 Windows 2003/Windows XP 下一個端口多個監(jiān)聽356
附錄 H Suse 9.0 下線程創(chuàng)建的數量和堆內存 / 永久內存的關系357
附錄 I JConsole358
附錄 J Gcviewer 359
附錄 K IBM JDK 下定位引起 core dump 的 JIT 方法360
附錄 L 一份簡短的 Java 編程規(guī)范 361
參考文獻363

本目錄推薦

掃描二維碼
Copyright ? 讀書網 ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號