注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計JAVA及其相關(guān)Java程序性能優(yōu)化:讓你的Java程序更快、更穩(wěn)定

Java程序性能優(yōu)化:讓你的Java程序更快、更穩(wěn)定

Java程序性能優(yōu)化:讓你的Java程序更快、更穩(wěn)定

定 價:¥59.00

作 者: 葛一鳴 等編著
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: J2EE

ISBN: 9787302296256 出版時間: 2012-10-01 包裝: 平裝
開本: 16開 頁數(shù): 400 字?jǐn)?shù):  

內(nèi)容簡介

  Java是目前應(yīng)用最為廣泛的軟件開發(fā)平臺,學(xué)習(xí)針對Java程序的優(yōu)化方法有重要的現(xiàn)實意義?!禞ava程序性能優(yōu)化:讓你的Java程序更快、更穩(wěn)定》以Java性能調(diào)優(yōu)為主線,系統(tǒng)地闡述了與Java性能優(yōu)化相關(guān)的知識與技巧。 《Java程序性能優(yōu)化:讓你的Java程序更快、更穩(wěn)定》共6章,先后從軟件設(shè)計、軟件編碼、JVM調(diào)優(yōu)以及程序故障排斥等方面介紹針對Java程序的優(yōu)化方法。第1章介紹性能的基本概念、定律、系統(tǒng)調(diào)優(yōu)的過程和注意事項。第2章從設(shè)計層面介紹與性能相關(guān)的設(shè)計模式、組件。第3章從代碼層面介紹如何編寫高性能的Java程序。第4章介紹了并行開發(fā)和如何通過多線程提高系統(tǒng)性能。第5章立足于JVM虛擬機(jī)層面,介紹如何通過設(shè)置合理的JVM參數(shù)提升Java程序的性能。第6章為工具篇,介紹了獲取和監(jiān)控程序或系統(tǒng)性能指標(biāo)的各種工具,包括相關(guān)的故障排查工具。 本書適合所有Java程序員、軟件設(shè)計師、架構(gòu)師以及軟件開發(fā)愛好者,對于有一定經(jīng)驗的Java工程師,本書更能幫助他突破技術(shù)瓶頸,深入Java內(nèi)核開發(fā)!

作者簡介

  葛一鳴,畢業(yè)于浙江工業(yè)大學(xué),獲得了計算機(jī)軟件與理論專業(yè)碩士學(xué)位。取得了國家認(rèn)證系統(tǒng)分析師職稱、OCP(Oracle數(shù)據(jù)庫認(rèn)證專家)?,F(xiàn)就職于UT斯達(dá)康通訊有限公司,從事Java軟件開發(fā)。有多年的軟件開發(fā)經(jīng)驗,參與開發(fā)過多個軟件項目。熟悉Java、PHP、MySQL、Oracle等開發(fā)語言和數(shù)據(jù)庫,對Java軟件開發(fā)、性能優(yōu)化、分布式軟件有著濃厚的興趣和深入的研究。在校期間曾經(jīng)發(fā)表過多篇技術(shù)論文。

圖書目錄

第1章 Java性能調(diào)優(yōu)概述
1.1 性能概述
1.1.1 看懂程序的性能
1.1.2 性能的參考指標(biāo)
1.1.3 木桶原理與性能瓶頸
1.1.4 Amdahl定律
1.2 性能調(diào)優(yōu)的層次
1.2.1 設(shè)計調(diào)優(yōu)
1.2.2 代碼調(diào)優(yōu)
1.2.3 JVM調(diào)優(yōu)
1.2.4 數(shù)據(jù)庫調(diào)優(yōu)
1.2.5 操作系統(tǒng)調(diào)優(yōu)
1.3 基本調(diào)優(yōu)策略和手段
1.3.1 優(yōu)化的一般步驟
1.3.2 系統(tǒng)優(yōu)化注意事項
1.4 小結(jié)

第2章 設(shè)計優(yōu)化
2.1 善用設(shè)計模式
2.1.1 單例模式
2.1.2 代理模式
2.1.3 享元模式
2.1.4 裝飾者模式
2.1.5 觀察者模式
2.1.6 Value Object模式
2.1.7 業(yè)務(wù)代理模式
2.2 常用優(yōu)化組件和方法
2.2.1 緩沖(Buffer)
2.2.2 緩存(Cache)
2.2.3 對象復(fù)用——“池”
2.2.4 并行替代串行
2.2.5 負(fù)載均衡
2.2.6 時間換空間
2.2.7 空間換時間
2.3 小結(jié)

第3章 Java程序優(yōu)化
3.1 字符串優(yōu)化處理
3.1.1 String對象及其特點(diǎn)
3.1.2 subString()方法的內(nèi)存泄漏
3.1.3 字符串分割和查找
3.1.4 StringBuffer和StringBuilder
3.2 核心數(shù)據(jù)結(jié)構(gòu)
3.2.1 List接口
3.2.2 Map接口
3.2.3 Set接口
3.2.4 優(yōu)化集合訪問代碼
3.2.5 RandomAccess接口
3.3 使用NIO提升性能
3.3.1 NIO的Buffer類族和Channel
3.3.2 Buffer的基本原理
3.3.3 Buffer的相關(guān)操作
3.3.4 MappedByteBuffer性能評估
3.3.5 直接內(nèi)存訪問
3.4 引用類型
3.4.1 強(qiáng)引用
3.4.2 軟引用
3.4.3 弱引用
3.4.4 虛引用
3.4.5 WeakHashMap類及其實現(xiàn)
3.5 有助于改善性能的技巧
3.5.1 慎用異常
3.5.2 使用局部變量
3.5.3 位運(yùn)算代替乘除法
3.5.4 替換switch
3.5.5 一維數(shù)組代替二維數(shù)組
3.5.6 提取表達(dá)式
3.5.7 展開循環(huán)
3.5.8 布爾運(yùn)算代替位運(yùn)算
3.5.9 使用arrayCopy ()
3.5.10 使用Buffer進(jìn)行I/O操作
3.5.11 使用clone()代替new
3.5.12 靜態(tài)方法替代實例方法
3.6 小結(jié)

第4章 并行程序開發(fā)及優(yōu)化
4.1 并行程序設(shè)計模式
4.1.1 Future模式
4.1.2 Master-Worker模式
4.1.3 Guarded Suspension模式
4.1.4 不變模式
4.1.5 生產(chǎn)者-消費(fèi)者模式
4.2 JDK多任務(wù)執(zhí)行框架
4.2.1 無限制線程的缺陷
4.2.2 簡單的線程池實現(xiàn)
4.2.3 Executor框架
4.2.4 自定義線程池
4.2.5 優(yōu)化線程池大小
4.2.6 擴(kuò)展ThreadPoolExecutor
4.3 JDK并發(fā)數(shù)據(jù)結(jié)構(gòu)
4.3.1 并發(fā)List
4.3.2 并發(fā)Set
4.3.3 并發(fā)Map
4.3.4 并發(fā)Queue
4.3.5 并發(fā)Deque
4.4 并發(fā)控制方法
4.4.1 Java內(nèi)存模型與volatile
4.4.2 同步關(guān)鍵字synchronized
4.4.3 ReentrantLock重入鎖
4.4.4 ReadWriteLock讀寫鎖
4.4.5 Condition對象
4.4.6 Semaphore信號量
4.4.7 ThreadLocal線程局部變量
4.5 “鎖”的性能和優(yōu)化
4.5.1 線程的開銷
4.5.2 避免死鎖
4.5.3 減小鎖持有時間
4.5.4 減小鎖粒度
4.5.5 讀寫分離鎖來替換獨(dú)占鎖
4.5.6 鎖分離
4.5.7 重入鎖ReentrantLock和內(nèi)部鎖synchronized
4.5.8 鎖粗化(Lock Coarsening)
4.5.9 自旋鎖(Spinning Lock)
4.5.10 鎖消除(Lock Elimination)
4.5.11 鎖偏向(Biased Lock)
4.6 無鎖的并行計算
4.6.1 非阻塞的同步/無鎖
4.6.2 原子操作
4.6.3 Amino框架介紹
4.6.4 Amino集合
4.6.5 Amino樹
4.6.6 Amino圖
4.6.7 Amino簡單調(diào)度模式
4.7 協(xié)程
4.7.1 協(xié)程的概念
4.7.2 Kilim框架簡介
4.7.3 Task及其狀態(tài)
4.7.4 Fiber及其狀態(tài)
4.7.5 Kilim開發(fā)環(huán)境配置
4.7.6 Kilim之Hello World
4.7.7 多任務(wù)通信
4.7.8 Kilim實例及性能評估
4.8 小結(jié)

第5章 JVM調(diào)優(yōu)
5.1 Java虛擬機(jī)內(nèi)存模型
5.1.1 程序計數(shù)器
5.1.2 Java虛擬機(jī)棧
5.1.3 本地方法棧
5.1.4 Java堆
5.1.5 方法區(qū)
5.2 JVM內(nèi)存分配參數(shù)
5.2.1 設(shè)置最大堆內(nèi)存
5.2.2 設(shè)置最小堆內(nèi)存
5.2.3 設(shè)置新生代
5.2.4 設(shè)置持久代
5.2.5 設(shè)置線程桟
5.2.6 堆的比例分配
5.2.7 堆分配參數(shù)總結(jié)
5.3 垃圾收集基礎(chǔ)
5.3.1 垃圾收集的作用
5.3.2 垃圾回收算法與思想
5.3.3 垃圾收集器的類型
5.3.4 評價GC策略的指標(biāo)
5.3.5 新生代串行收集器
5.3.6 老年代串行收集器
5.3.7 并行收集器
5.3.8 新生代并行回收(Parallel Scavenge)收集器
5.3.9 老年代并行回收收集器
5.3.10 CMS收集器
5.3.11 G1收集器(Garbage First)
5.3.12 Stop the World案例
5.3.13 收集器對系統(tǒng)性能的影響
5.3.14 GC相關(guān)參數(shù)總結(jié)
5.4 常用調(diào)優(yōu)案例和方法
5.4.1 將新對象預(yù)留在新生代
5.4.2 大對象進(jìn)入老年代
5.4.3 設(shè)置對象進(jìn)入老年代的年齡
5.4.4 穩(wěn)定與震蕩的堆大小
5.4.5 吞吐量優(yōu)先案例
5.4.6 使用大頁案例
5.4.7 降低停頓案例
5.5 實用JVM參數(shù)
5.5.1 JIT編譯參數(shù)
5.5.2 堆快照(堆Dump)
5.5.3 錯誤處理
5.5.4 取得GC信息
5.5.5 類和對象跟蹤
5.5.6 控制GC
5.5.7 選擇類校驗器
5.5.8 Solaris下線程控制
5.5.9 使用大頁
5.5.10 壓縮指針
5.6 實戰(zhàn)JVM調(diào)優(yōu)
5.6.1 Tomcat簡介與啟動加速
5.6.2 Web應(yīng)用程序介紹
5.6.3 JMeter介紹與使用
5.6.4 調(diào)優(yōu)前Web應(yīng)用運(yùn)行狀況
5.6.5 調(diào)優(yōu)過程
5.7 總結(jié)

第6章 Java性能調(diào)優(yōu)工具
6.1 Linux命令行工具
6.1.1 top命令
6.1.2 sar命令
6.1.3 vmstat命令
6.1.4 iostat命令
6.1.5 pidstat工具
6.2 Windows工具
6.2.1 任務(wù)管理器
6.2.2 perfmon性能監(jiān)控工具
6.2.3 Process Explorer
6.2.4 pslist命令行
6.3 JDK命令行工具
6.3.1 jps命令
6.3.2 jstat命令
6.3.3 jinfo命令
6.3.4 jmap命令
6.3.5 jhat命令
6.3.6 jstack命令
6.3.7 jstatd命令
6.3.8 hprof工具
6.4 JConsole工具
6.4.1 JConsole連接Java程序
6.4.2 Java程序概況
6.4.3 內(nèi)存監(jiān)控
6.4.4 線程監(jiān)控
6.4.5 類加載情況
6.4.6 虛擬機(jī)信息
6.4.7 MBean管理
6.4.8 使用插件
6.5 Visual VM多合一工具
6.5.1 Visual VM連接應(yīng)用程序
6.5.2 監(jiān)控應(yīng)用程序概況
6.5.3 Thread Dump和分析
6.5.4 性能分析
6.5.5 快照
6.5.6 內(nèi)存快照分析
6.5.7 MBean管理
6.5.8 TDA使用
6.5.9 BTrace介紹
6.6 Visual VM對OQL的支持
6.6.1 Visual VM的OQL基本語法
6.6.2 內(nèi)置heap對象
6.6.3 對象函數(shù)
6.6.4 集合/統(tǒng)計函數(shù)
6.6.5 程序化OQL
6.7 MAT內(nèi)存分析工具
6.7.1 初識MAT
6.7.2 淺堆和深堆
6.7.3 支配樹(Dominator Tree)
6.7.4 垃圾回收根
6.7.5 內(nèi)存泄露檢測
6.7.6 最大對象報告
6.7.7 查找支配者
6.7.8 線程分析
6.7.9 集合使用情況分析
6.7.10 擴(kuò)展MAT
6.8 MAT對OQL的支持
6.8.1 Select子句
6.8.2 From子句
6.8.3 Where子句
6.8.4 內(nèi)置對象與方法
6.9 JProfile簡介
6.9.1 JProfile使用配置
6.9.2 內(nèi)存視圖
6.9.3 堆快照
6.9.4 CPU視圖
6.9.5 線程視圖
6.9.6 JVM統(tǒng)計信息
6.9.7 觸發(fā)器
6.10 小結(jié)

本目錄推薦

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