注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)程序設(shè)計(jì)綜合HotSpot實(shí)戰(zhàn)

HotSpot實(shí)戰(zhàn)

HotSpot實(shí)戰(zhàn)

定 價(jià):¥69.00

作 者: 陳濤 著
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 計(jì)算機(jī)/網(wǎng)絡(luò) 軟件工程/開發(fā)項(xiàng)目管理

ISBN: 9787115343635 出版時(shí)間: 2014-03-01 包裝: 平裝
開本: 16開 頁數(shù): 347 字?jǐn)?shù):  

內(nèi)容簡介

  《HotSpot實(shí)戰(zhàn)》深入淺出地講解了HotSpot虛擬機(jī)的工作原理,將隱藏在它內(nèi)部的本質(zhì)內(nèi)容逐一呈現(xiàn)在讀者面前,包括OpenJDK與HotSpot項(xiàng)目、編譯和調(diào)試HotSpot的方法、HotSpot內(nèi)核結(jié)構(gòu)、Launcher、OOP-Klass對(duì)象表示系統(tǒng)、鏈接、運(yùn)行時(shí)數(shù)據(jù)區(qū)、方法區(qū)、常量池和常量池Cache、Perf Data、Crash分析方法、轉(zhuǎn)儲(chǔ)分析方法、垃圾收集器的設(shè)計(jì)演進(jìn)、CMS和G1收集器、棧、JVM對(duì)硬件寄存器的利用、棧頂緩存技術(shù)、解釋器、字節(jié)碼表、轉(zhuǎn)發(fā)表、Stubs、Code Cache、Code生成器、JIT編譯器、C1編譯器、編譯原理、JVM指令集實(shí)現(xiàn)、函數(shù)的分發(fā)機(jī)制、VTABLE和ITABLE、異常表、虛擬機(jī)監(jiān)控工具(如jinfo、jstack、jhat、jmap等)的實(shí)現(xiàn)原理和開發(fā)方法、Attach機(jī)制、基于GUI的JVM分析工具(如MAT、VisualVM)等內(nèi)容。除了HotSpot技術(shù),《HotSpot實(shí)戰(zhàn)》還對(duì)方法論進(jìn)行了探討。在各個(gè)章節(jié)的講解中,都會(huì)有一些與系統(tǒng)運(yùn)行機(jī)制相關(guān)的實(shí)戰(zhàn)或練習(xí),供讀者練手。通過這些實(shí)戰(zhàn)練習(xí),不僅有助于讀者加深對(duì)知識(shí)或原理的理解,更為重要的是,它還可以培養(yǎng)讀者獨(dú)立探索的思維方式,這有助于讀者把知識(shí)融會(huì)貫通并靈活應(yīng)用到實(shí)際項(xiàng)目中。《HotSpot實(shí)戰(zhàn)》適合于已具有一定Java編程基礎(chǔ)的讀者,以及在Java或基于JVM的編程語言平臺(tái)下進(jìn)行各類軟件開發(fā)的開發(fā)人員、測試人員和運(yùn)維人員。對(duì)于JVM和編程語言愛好者來說,《HotSpot實(shí)戰(zhàn)》也具有一定的學(xué)習(xí)參考價(jià)值。

作者簡介

  陳濤,碩士,畢業(yè)于中國科技大學(xué)?,F(xiàn)就職于網(wǎng)易公司旗下的網(wǎng)易寶,從事在線支付系統(tǒng)的設(shè)計(jì)與開發(fā)工作。在從事Java工作之前 ,曾有過Linux內(nèi)核及驅(qū)動(dòng)開發(fā)工作經(jīng)驗(yàn)。熱衷于專研技術(shù),對(duì)編程語言和JVM比較感興趣。工作之余 ,喜歡足球和武俠帶來的樂趣。目前正在“專研”的課題是如何做一名稱職的奶爸。

圖書目錄

第1章 初識(shí)HotSpot 1
1.1 JDK概述 2
1.1.1 JCP與JSR 3
1.1.2 JDK的發(fā)展歷程 4
1.1.3 Java 7的語法變化 7
1.2 動(dòng)手編譯虛擬機(jī) 13
1.2.1 源代碼下載 13
1.2.2 HotSpot源代碼結(jié)構(gòu) 13
1.2.3 搭建編譯環(huán)境 15
1.2.4 編譯目標(biāo) 16
1.2.5 編譯過程 17
1.2.6 編譯常見問題 19
1.3 實(shí)戰(zhàn):在HotSpot內(nèi)調(diào)試HelloWorld 20
1.3.1 認(rèn)識(shí)GDB 21
1.3.2 準(zhǔn)備調(diào)試腳本 22
1.4 小結(jié) 26
第2章 啟動(dòng) 28
2.1 HotSpot內(nèi)核 28
2.1.1 如何閱讀源代碼 28
2.1.2 HotSpot內(nèi)核框架 36
2.1.3 Prims 37
2.1.4 Services 39
2.1.5 Runtime 43
2.2 啟動(dòng) 46
2.2.1 Launcher 46
2.2.2 虛擬機(jī)生命周期 48
2.2.3 入口:main函數(shù) 50
2.2.4 主線程 51
2.2.5 InitializeJVM函數(shù) 53
2.2.6 JNI_CreateJavaVM函數(shù) 55
2.2.7 調(diào)用Java主方法 56
2.2.8 JVM退出路徑 56
2.3 系統(tǒng)初始化 57
2.3.1 配置OS模塊 58
2.3.2 配置系統(tǒng)屬性 60
2.3.3 加載系統(tǒng)庫 61
2.3.4 啟動(dòng)線程 62
2.3.5 vm_init_globals函數(shù):初始化全局?jǐn)?shù)據(jù)結(jié)構(gòu) 65
2.3.6 init_globals函數(shù):初始化全局模塊 65
2.4 小結(jié) 69
第3章 類與對(duì)象 70
3.1 對(duì)象表示機(jī)制 71
3.1.1 OOP-Klass二分模型 71
3.1.2 Oops模塊 71
3.1.3 OOP框架與對(duì)象訪問機(jī)制 73
3.1.4 Klass與instanceKlass 79
3.1.5 實(shí)戰(zhàn):用HSDB調(diào)試HotSpot 82
3.2 類的狀態(tài)轉(zhuǎn)換 87
3.2.1 入口:Class文件 87
3.2.2 類的狀態(tài) 92
3.2.3 加載 96
3.2.4 鏈接 101
3.2.5 初始化 104
3.2.6 實(shí)戰(zhàn):類的“族譜” 107
3.2.7 實(shí)戰(zhàn):系統(tǒng)字典 111
3.3 創(chuàng)建對(duì)象 113
3.3.1 實(shí)例對(duì)象的創(chuàng)建流程 114
3.3.2 實(shí)戰(zhàn):探測JVM內(nèi)部對(duì)象 116
3.4 小結(jié) 119
第4章 運(yùn)行時(shí)數(shù)據(jù)區(qū) 120
4.1 堆 121
4.1.1 Java的自動(dòng)內(nèi)存管理 121
4.1.2 堆的管理 122
4.2 線程私有區(qū)域 125
4.2.1 PC 125
4.2.2 JVM?!?26
4.3 方法區(qū) 126
4.3.1 紐帶作用 127
4.3.2 常量池 130
4.3.3 常量池緩存:ConstantPoolCache 133
4.3.4 方法的表示:methodOop 134
4.3.5 方法的解析:將符號(hào)引用轉(zhuǎn)換成直接引用 138
4.3.6 代碼放在哪里:ConstMethodOop 141
4.3.7 實(shí)戰(zhàn):探測運(yùn)行時(shí)常量池 142
4.4 性能監(jiān)控?cái)?shù)據(jù)區(qū):Perf Data 147
4.4.1 描述這段空間:PerfMemory 147
4.4.2 查看 148
4.4.3 生產(chǎn) 150
4.5 轉(zhuǎn)儲(chǔ) 151
4.5.1 用VisualVM進(jìn)行轉(zhuǎn)儲(chǔ)分析 151
4.5.2 JVM Crash 153
4.6 小結(jié) 158
第5章 垃圾收集 159
5.1 堆與GC 160
5.1.1 垃圾收集 160
5.1.2 分代收集 162
5.1.3 快速分配 165
5.1.4 棧上分配和逸出分析 167
5.1.5 GC公共模塊 167
5.2 垃圾收集器 170
5.2.1 設(shè)計(jì)演進(jìn) 170
5.2.2 CMS收集器 175
5.2.3 G1收集器 180
5.3 實(shí)戰(zhàn):性能分析方法 184
5.3.1 獲取GC日志 184
5.3.2 GC監(jiān)控信息 187
5.3.3 內(nèi)存分析工具 189
5.3.4 選擇合適的收集器與GC性能評(píng)估 190
5.3.5 不要忽略JVM Crash日志 195
5.4 小結(jié) 196
第6章 ?!?97
6.1 硬件背景:了解真實(shí)機(jī)器 198
6.1.1 程序是如何運(yùn)行的 198
6.1.2 x86與棧幀 199
6.1.3 ARM對(duì)Java硬件級(jí)加速:Jazelle技術(shù) 202
6.2 Java?!?03
6.2.1 寄存器式指令集與棧式指令集 203
6.2.2 HotSpot中的棧 204
6.2.3 棧幀 207
6.2.4 充分利用寄存器資源 210
6.2.5 虛擬機(jī)如何調(diào)用Java函數(shù) 212
6.2.6 優(yōu)化:棧頂緩存 221
6.2.7 實(shí)戰(zhàn):操作數(shù)?!?23
6.3 小結(jié) 228
第7章 解釋器和即時(shí)編譯器 229
7.1 概述 230
7.2 解釋器如何工作 231
7.2.1 Interpreter模塊 232
7.2.2 Code模塊 234
7.2.3 字節(jié)碼表 235
7.2.4 Code Cache 236
7.2.5 InterpreterCodelet與Stub隊(duì)列 239
7.2.6 Code生成器 241
7.2.7 模板表與轉(zhuǎn)發(fā)表 244
7.2.8 實(shí)戰(zhàn):InterpreterCodelet 247
7.3 即時(shí)編譯器 250
7.3.1 概述 250
7.3.2 編譯器模塊 251
7.3.3 編譯器的基本結(jié)構(gòu) 252
7.3.4 實(shí)戰(zhàn):編譯原理實(shí)踐,了解編譯中間環(huán)節(jié) 255
7.4 小結(jié) 267
第8章 指令集 268
8.1 再說棧式指令集 268
8.2 數(shù)據(jù)傳送 270
8.2.1 局部變量、常量池和操作數(shù)棧之間的數(shù)據(jù)傳送 270
8.2.2 數(shù)據(jù)傳送指令 272
8.2.3 實(shí)戰(zhàn):數(shù)組的越界檢查 277
8.3 類型轉(zhuǎn)換 279
8.4 對(duì)象的創(chuàng)建和操作 281
8.5 程序流程控制 282
8.5.1 控制轉(zhuǎn)移指令 282
8.5.2 條件轉(zhuǎn)移 283
8.5.3 無條件轉(zhuǎn)移 284
8.5.4 復(fù)合條件轉(zhuǎn)移 285
8.5.5 實(shí)戰(zhàn):switch語句如何使用String 287
8.6 運(yùn)算 290
8.6.1 加法:iadd 290
8.6.2 取負(fù):ineg 291
8.7 函數(shù)的調(diào)用和返回 292
8.7.1 Java函數(shù)分發(fā)機(jī)制:VTABLE與ITABLE 293
8.7.2 invoke系列指令 297
8.7.3 動(dòng)態(tài)分發(fā):覆蓋 299
8.7.4 靜態(tài)分發(fā):重載 302
8.8 異?!?05
8.8.1 異常表 305
8.8.2 創(chuàng)建異常 306
8.8.3 try-catch 309
8.8.4 finally 311
8.9 小結(jié) 312
第9章 虛擬機(jī)監(jiān)控工具 313
9.1 Attach機(jī)制 314
9.1.1 AttachProvider與VirtualMachine 314
9.1.2 命令的下發(fā):execute() 317
9.1.3 命令的執(zhí)行:Attach Listener守護(hù)線程 319
9.2 查看JVM進(jìn)程 320
9.2.1 用jps查看Java進(jìn)程 320
9.2.2 實(shí)戰(zhàn):定制jps,允許查看庫路徑 323
9.3 查看和配置JVM 326
9.3.1 用jinfo查看JVM參數(shù)配置 326
9.3.2 實(shí)戰(zhàn):擴(kuò)展flags選項(xiàng),允許查看命令行參數(shù) 330
9.4 堆內(nèi)存轉(zhuǎn)儲(chǔ)工具 332
9.4.1 Heap Dump 332
9.4.2 原理 333
9.5 堆轉(zhuǎn)儲(chǔ)分析 337
9.5.1 Heap Dump分析工具:jhat 337
9.5.2 實(shí)戰(zhàn):MAT分析過程 340
9.6 線程轉(zhuǎn)儲(chǔ)分析 343
9.6.1 jstack 343
9.6.2 實(shí)戰(zhàn):如何分析資源等待 344
9.7 小結(jié) 347

本目錄推薦

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