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

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

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

定 價(jià):¥59.00

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

購(gòu)買(mǎi)這本書(shū)可以去


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

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書(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è)計(jì)調(diào)優(yōu)
1.2.2 代碼調(diào)優(yōu)
1.2.3 JVM調(diào)優(yōu)
1.2.4 數(shù)據(jù)庫(kù)調(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)化注意事項(xiàng)
1.4 小結(jié)

第2章 設(shè)計(jì)優(yōu)化
2.1 善用設(shè)計(jì)模式
2.1.1 單例模式
2.1.2 代理模式
2.1.3 享元模式
2.1.4 裝飾者模式
2.1.5 觀(guān)察者模式
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 對(duì)象復(fù)用——“池”
2.2.4 并行替代串行
2.2.5 負(fù)載均衡
2.2.6 時(shí)間換空間
2.2.7 空間換時(shí)間
2.3 小結(jié)

第3章 Java程序優(yōu)化
3.1 字符串優(yōu)化處理
3.1.1 String對(duì)象及其特點(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)化集合訪(fǎng)問(wèn)代碼
3.2.5 RandomAccess接口
3.3 使用NIO提升性能
3.3.1 NIO的Buffer類(lèi)族和Channel
3.3.2 Buffer的基本原理
3.3.3 Buffer的相關(guān)操作
3.3.4 MappedByteBuffer性能評(píng)估
3.3.5 直接內(nèi)存訪(fǎng)問(wèn)
3.4 引用類(lèi)型
3.4.1 強(qiáng)引用
3.4.2 軟引用
3.4.3 弱引用
3.4.4 虛引用
3.4.5 WeakHashMap類(lèi)及其實(shí)現(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 展開(kāi)循環(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)方法替代實(shí)例方法
3.6 小結(jié)

第4章 并行程序開(kāi)發(fā)及優(yōu)化
4.1 并行程序設(shè)計(jì)模式
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 無(wú)限制線(xiàn)程的缺陷
4.2.2 簡(jiǎn)單的線(xiàn)程池實(shí)現(xiàn)
4.2.3 Executor框架
4.2.4 自定義線(xiàn)程池
4.2.5 優(yōu)化線(xiàn)程池大小
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讀寫(xiě)鎖
4.4.5 Condition對(duì)象
4.4.6 Semaphore信號(hào)量
4.4.7 ThreadLocal線(xiàn)程局部變量
4.5 “鎖”的性能和優(yōu)化
4.5.1 線(xiàn)程的開(kāi)銷(xiāo)
4.5.2 避免死鎖
4.5.3 減小鎖持有時(shí)間
4.5.4 減小鎖粒度
4.5.5 讀寫(xiě)分離鎖來(lái)替換獨(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 無(wú)鎖的并行計(jì)算
4.6.1 非阻塞的同步/無(wú)鎖
4.6.2 原子操作
4.6.3 Amino框架介紹
4.6.4 Amino集合
4.6.5 Amino樹(shù)
4.6.6 Amino圖
4.6.7 Amino簡(jiǎn)單調(diào)度模式
4.7 協(xié)程
4.7.1 協(xié)程的概念
4.7.2 Kilim框架簡(jiǎn)介
4.7.3 Task及其狀態(tài)
4.7.4 Fiber及其狀態(tài)
4.7.5 Kilim開(kāi)發(fā)環(huán)境配置
4.7.6 Kilim之Hello World
4.7.7 多任務(wù)通信
4.7.8 Kilim實(shí)例及性能評(píng)估
4.8 小結(jié)

第5章 JVM調(diào)優(yōu)
5.1 Java虛擬機(jī)內(nèi)存模型
5.1.1 程序計(jì)數(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è)置線(xiàn)程桟
5.2.6 堆的比例分配
5.2.7 堆分配參數(shù)總結(jié)
5.3 垃圾收集基礎(chǔ)
5.3.1 垃圾收集的作用
5.3.2 垃圾回收算法與思想
5.3.3 垃圾收集器的類(lèi)型
5.3.4 評(píng)價(jià)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 收集器對(duì)系統(tǒng)性能的影響
5.3.14 GC相關(guān)參數(shù)總結(jié)
5.4 常用調(diào)優(yōu)案例和方法
5.4.1 將新對(duì)象預(yù)留在新生代
5.4.2 大對(duì)象進(jìn)入老年代
5.4.3 設(shè)置對(duì)象進(jìn)入老年代的年齡
5.4.4 穩(wěn)定與震蕩的堆大小
5.4.5 吞吐量?jī)?yōu)先案例
5.4.6 使用大頁(yè)案例
5.4.7 降低停頓案例
5.5 實(shí)用JVM參數(shù)
5.5.1 JIT編譯參數(shù)
5.5.2 堆快照(堆Dump)
5.5.3 錯(cuò)誤處理
5.5.4 取得GC信息
5.5.5 類(lèi)和對(duì)象跟蹤
5.5.6 控制GC
5.5.7 選擇類(lèi)校驗(yàn)器
5.5.8 Solaris下線(xiàn)程控制
5.5.9 使用大頁(yè)
5.5.10 壓縮指針
5.6 實(shí)戰(zhàn)JVM調(diào)優(yōu)
5.6.1 Tomcat簡(jiǎn)介與啟動(dòng)加速
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)過(guò)程
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 線(xiàn)程監(jiān)控
6.4.5 類(lèi)加載情況
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對(duì)OQL的支持
6.6.1 Visual VM的OQL基本語(yǔ)法
6.6.2 內(nèi)置heap對(duì)象
6.6.3 對(duì)象函數(shù)
6.6.4 集合/統(tǒng)計(jì)函數(shù)
6.6.5 程序化OQL
6.7 MAT內(nèi)存分析工具
6.7.1 初識(shí)MAT
6.7.2 淺堆和深堆
6.7.3 支配樹(shù)(Dominator Tree)
6.7.4 垃圾回收根
6.7.5 內(nèi)存泄露檢測(cè)
6.7.6 最大對(duì)象報(bào)告
6.7.7 查找支配者
6.7.8 線(xiàn)程分析
6.7.9 集合使用情況分析
6.7.10 擴(kuò)展MAT
6.8 MAT對(duì)OQL的支持
6.8.1 Select子句
6.8.2 From子句
6.8.3 Where子句
6.8.4 內(nèi)置對(duì)象與方法
6.9 JProfile簡(jiǎn)介
6.9.1 JProfile使用配置
6.9.2 內(nèi)存視圖
6.9.3 堆快照
6.9.4 CPU視圖
6.9.5 線(xiàn)程視圖
6.9.6 JVM統(tǒng)計(jì)信息
6.9.7 觸發(fā)器
6.10 小結(jié)

本目錄推薦

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