Java性能權威指南 版權信息
- ISBN:9787115413765
- 條形碼:9787115413765 ; 978-7-115-41376-5
- 裝幀:暫無
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
Java性能權威指南 本書特色
本書對java 7和java 8中影響性能的因素展開了全面深入的介紹,講解傳統上影響應用性能的jvm特征,包括即時編譯器、垃圾收集、語言特征等。內容包括:用g1垃圾收集器應用的吞吐量;使用java飛行記錄器查看性能細節,而不必借助專業的分析工具;堆內存與原生內存實踐;線程與同步的性能,以及數據庫性能實踐等。
Java性能權威指南 內容簡介
市面上介紹java的書有很多,但專注于java性能的并不多,能游刃有余地展示java性能優化難點的更是鳳毛麟角,本書即是其中之一。通過使用jvm和java平臺,以及java語言和應用程序接口,本書詳盡講解了java性能調優的相關知識,幫助讀者深入理解java平臺性能的各個方面,*終使程序如虎添翼。
Java性能權威指南 目錄
第1章 導論 11.1 概述 21.2 平臺版本約定 21.3 全面的性能調優 41.3.1 編寫更好的算法 41.3.2 編寫更少的代碼 41.3.3 老調重彈的過早優化 51.3.4 其他:數據庫很可能就是瓶頸 61.3.5 常見的優化 71.4 小結 8第2章 性能測試方法 92.1 原則1:測試真實應用 92.1.1 微基準測試 92.1.2 宏基準測試 132.1.3 介基準測試 152.1.4 代碼示例 162.2 原則2:理解批處理流逝時間、吞吐量和響應時間 192.2.1 批處理流逝時間 192.2.2 吞吐量測試 202.2.3 響應時間測試 202.3 原則3:用統計方法應對性能的變化 232.4 原則4:盡早頻繁測試 262.5 小結 28第3章 java性能調優工具箱 293.1 操作系統的工具和分析 293.1.1 cpu使用率 293.1.2 cpu運行隊列 323.1.3 磁盤使用率 333.1.4 網絡使用率 343.2 java監控工具 353.2.1 基本的vm信息 363.2.2 線程信息 393.2.3 類信息 393.2.4 實時gc分析 393.2.5 事后堆轉儲 393.3 性能分析工具 393.3.1 采樣分析器 403.3.2 探查分析器 413.3.3 阻塞方法和線程時間線 423.3.4 本地分析器 443.4 java任務控制 453.4.1 java飛行記錄器 463.4.2 開啟jfr 523.4.3 選擇jfr 事件 543.5 小結 56第4章 jit編譯器 584.1 jit編譯器:概覽 584.2 調優入門:選擇編譯器類型(client、server或二者同用) 614.2.1 優化啟動 624.2.2 優化批處理 634.2.3 優化長時間運行的應用 644.3 java和jit編譯器版本 644.4 編譯器中級調優 674.4.1 調優代碼緩存 674.4.2 編譯閾值 684.4.3 檢測編譯過程 704.5 高級編譯器調優 734.5.1 編譯線程 734.5.2 內聯 744.5.3 逃逸分析 754.6 逆優化 764.6.1 代碼被丟棄 774.6.2 逆優化僵尸代碼 784.7 分層編譯級別 794.8 小結 80第5章 垃圾收集入門 815.1 垃圾收集概述 815.1.1 分代垃圾收集器 835.1.2 gc算法 845.1.3 選擇gc算法 875.2 gc調優基礎 925.2.1 調整堆的大小 925.2.2 代空間的調整 955.2.3 永久代和元空間的調整 965.2.4 控制并發 975.2.5 自適應調整 985.3 垃圾回收工具 995.4 小結 102第6章 垃圾收集算法 1036.1 理解throughput收集器 1036.2 理解cms收集器 1096.2.1 針對并發模式失效的調優 1136.2.2 cms收集器的永久代調優 1166.2.3 增量式cms垃圾收集 1176.3 理解g1垃圾收集器 1186.4 高級調優 1266.4.1 晉升及survivor空間 1266.4.2 分配大對象 1296.4.3 aggressiveheap標志 1366.4.4 全盤掌控堆空間的大小 1376.5 小結 138第7章 堆內存*佳實踐 1407.1 堆分析 1407.1.1 堆直方圖 1417.1.2 堆轉儲 1427.1.3 內存溢出錯誤 1467.2 減少內存使用 1497.2.1 減少對象大小 1497.2.2 延遲初始化 1527.2.3 不可變對象和標準化對象 1567.2.4 字符串的保留 1577.3 對象生命周期管理 1607.3.1 對象重用 1607.3.2 弱引用、軟引用與其他引用 1657.4 小結 175第8章 原生內存*佳實踐 1768.1 內存占用 1768.1.1 測量內存占用 1778.1.2 內存占用*小化 1788.1.3 原生nio緩沖區 1788.1.4 原生內存跟蹤 1798.2 針對不同操作系統優化jvm 1828.2.1 大頁 1828.2.2 壓縮的oop 1858.3 小結 187第9章 線程與同步的性能 1889.1 線程池與threadpoolexecutor 1889.1.1 設置*大線程數 1899.1.2 設置*小線程數 1929.1.3 線程池任務大小 1939.1.4 設置threadpoolexecutor的大小 1939.2 forkjoinpool 1959.3 線程同步 2019.3.1 同步的代價 2029.3.2 避免同步 2059.3.3 偽共享 2089.4 jvm線程調優 2119.4.1 調節線程棧大小 2119.4.2 偏向鎖 2129.4.3 自旋鎖 2129.4.4 線程優先級 2139.5 監控線程與鎖 2139.5.1 查看線程 2149.5.2 查看阻塞線程 2149.6 小結 217第10章 java ee 性能調優 21810.1 web容器的基本性能 21810.2 線程池 22210.3 ejb會話bean 22310.3.1 調優ejb對象池 22310.3.2 調優ejb緩存 22510.3.3 本地和遠程實例 22610.4 xml和json處理 22710.4.1 數據大小 22710.4.2 解析和編組概述 22910.4.3 選擇解析器 23010.4.4 xml驗證 23510.4.5 文檔模型 23710.4.6 java對象模型 24010.5 對象序列化 24110.5.1 transient字段 24110.5.2 覆蓋默認的序列化 24110.5.3 壓縮序列化數據 24410.5.4 追蹤對象復制 24610.6 java ee網絡api 24810.7 小結 250第11章 數據庫性能的*佳實踐 25111.1 jdbc 25111.1.1 jdbc驅動程序 25211.1.2 預處理語句和語句池 25311.1.3 jdbc連接池 25511.1.4 事務 25611.1.5 結果集的處理 26211.2 jpa 26411.2.1 事務處理 26411.2.2 對jpa的寫性能進行優化 26711.2.3 對jpa的讀性能進行優化 26811.2.4 jpa緩存 27111.2.5 jpa的只讀實體 27611.3 小結 277第12章 java se api技巧 27812.1 緩沖式i/o 27812.2 類加載 28012.3 隨機數 28412.4 java原生接口 28512.5 異! 28712.6 字符串的性能 29012.7 日志 29112.8 java集合類api 29212.8.1 同步還是非同步 29312.8.2 設定集合的大小 29412.8.3 集合與內存使用效率 29512.9 aggressiveopts標志 29612.9.1 替代實現 29612.9.2 其他標志 29712.10 lambda表達式和匿名類 29712.11 流和過濾器的性能 30012.12 小結 302附錄a 性能調優標志摘要 303作者簡介 312關于封面 312
展開全部
Java性能權威指南 相關資料
“scott在這本書里深入介紹了jit編譯器、垃圾收集算法、線程同步等復雜問題,講解了很多應用性能分析以及優化的方法,讓我受益匪淺。推薦給所有想了解性能優化的java程序員。”
——thorben janssen,資深java程序員,獨立java培訓師,jsr 365專家組成員
“這是我今年讀到的所有java書中最有用的一本。作者全方位講解了java應用程序的方方面面,下至核心術語、調優工具等基礎知識,上至java ee、java 8等進階話題,環環相扣。每一位急于了解java性能調優或java虛擬機工作方式的開發者,都必備此書。”
——讀者評論
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。