《Java技术精髓》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)Steven L.Halter,(美)Steven J.Munroe著;许崇梅,张雪莲等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2002
  • ISBN:7111096436
  • 页数:266 页
图书介绍:本书是一本关于如何调整Java系统性能的书。本书从基本的例子出发逐步引出企业性能中更加复杂的问题,从而方便读者理解Java性能技术。 书中大量的实践知识可帮助大规模的分布在线多供应商的Java系统正常地,甚至更快地工作。本书会为正在设计或建立企业级Java系统的技术人员节省大量的时间,同时也会给具有一定Java编程基础的读者极大的帮助。

第一部分 概述 1

第1章 一般性能 1

1.1 性能与优化 1

1.2 性能的生命周期 2

1.2.1 编码前 2

1.2.2 编码期间 4

1.2.3 编码后 8

1.3 性能问题的类型 8

1.4 简单性能层 9

1.5 应用程序设计层 9

1.5.1 不好的设计选择 9

1.5.2 信息隐藏 10

1.6 物理层 11

1.6.1 Java 语言及其环境 11

1.6.2 Java 与其他环境的交互 12

1.6.3 持久 Java 对象 13

1.6.4 时间、距离和空间 14

第2章 识别 Java 性能的工具 16

2.1 Java 特有的工具 16

2.1.1 Java 分析工具 16

2.1.2 第三方 Java 分析工具 17

2.1.3 简单的计时测量 18

2.1.4 Verbosegc 选项 19

2.2 PerfMonitor 类 20

2.3 系统工具:Windows NT 性能监视器 27

2.4 本章小结 29

第3章 Java 性能问题涉及的领域 30

3.1 基本的计时比较 30

3.2 即时编译和静态编译 33

3.3 创建和重用对象 33

3.4 使用常量 38

3.5 使用字符串 38

3.6 异常的用法 44

3.7 循环技术 44

3.7.1 循环常量 44

3.7.2 本地变量 45

3.7.3 尽早地终止循环 46

3.8 造型技术 46

3.8.1 避免丢失类信息 46

3.8.2 避免 Instanceof 和造型相邻使用 47

3.8.3 避免不必要的造型和 Instanceof 48

3.9 同步 49

3.10 垃圾回收 49

3.11 集合 51

3.11.1 集合框架 51

3.11.2 一般用途的实现 53

3.11.3 向量 54

3.11.4 哈希表 54

3.12 本章小结 56

第二部分 物理性能 57

第4章 本地/远程问题 57

4.1 实现远程对象的可能途径 57

4.1.1 远程方法调用 58

4.1.2 企业级 Java Bean 59

4.1.3 SanFrancisco 的基础层 60

4.2 远程访问的开销 61

4.2.1 如何在 Java 中书写和使用远程服务程序 61

4.2.2 改变方法调用的粒度 66

4.2.3 远程访问的谱线 69

4.2.4 对象粒度 70

4.2.5 性能粒度的含义 71

4.2.6 正确放置数据 72

4.2.7 对象的亲合力 73

4.2.8 划分 73

4.3 本章小结 77

第5章 粒度 78

5.1 接口粒度 78

5.2 实现粒度 79

5.3 粒度和性能 79

5.3.1 例1:一个细粒度设计 80

5.3.2 例2:串行化定单行对象 88

5.4 本章小结 93

6.2 同步瓶颈 94

6.1 为什么很难避免瓶颈 94

第6章 瓶颈 94

6.3 加锁瓶颈 99

6.3.1 对象和加锁 100

6.3.2 死锁和锁排序 105

6.4 垃圾回收瓶颈 107

6.5 分布式垃圾回收 114

6.6 本章小结 115

第三部分 基准测试 117

第7章 Java 基准测试概述 117

7.1 Java 测试程序 118

7.1.1 Pendragon Software CaffeineMark 3.0 118

7.1.2 JMark 2.0 121

7.1.3 VolanoMark 2.1 123

7.1.4 SPECjvm 98 124

7.2 一个简单的测试程序 126

7.3 本章小结 141

第8章 应用级基准测试 142

8.1 BOB 基准测试 142

8.1.1 TPC-C 概述 143

8.1.2 BOB 结构 145

8.2 BOB 的运行 146

8.3 BOB 的实现 150

8.3.1 测试程序基础结构 150

8.3.2 测试程序事务 156

8.4 测试程序实体 159

8.5 本章小结 161

第四部分 应用程序环境 163

第9章 SanFrancisco 及其性能 163

9.1 SanFrancisco 概述 163

9.2 基础层 165

9.2.1 基础层对象模型基类 165

9.2.2 业务对象的生命周期 168

9.2.3 实体的生命周期 169

9.2.4 集合和查询 171

9.2.5 其他基类 174

9.2.6 基础对象模型服务 175

9.3 通用业务对象层 180

9.4 核心业务处理层 183

9.5 有用的参考资料 185

9.5.1 有关 SanFrancisco 的书籍 185

9.5.2 有关 SanFrancisco 的文章 185

9.5.3 有关 SanFrancisco 的 IBM Redbooks 186

9.6 本章小结 186

第10章 企业级 Java Beans 及其性能 187

10.1 J2EE 体系结构和技术 187

10.2 企业级 Java Beans 189

10.2.1 选择一个实现 189

10.2.2 EJB 的实现及其性能 189

10.3.1 Session Bean 190

10.3 EJB 体系结构及其性能 190

10.3.2 Entity Bean 192

10.3.3 Entity Bean 的特点 193

10.3.4 EJB 的粒度 194

10.3.5 Session Bean 和 Entity Bean 的比较 194

10.4 EJS 中的特性研究 195

10.5 本章小结 195

第11章 CORBA 及 Java 196

11.1 CORBA 概述 196

11.2 Java IDL 197

11.3 RMI-IIOP 197

11.5 本章小结 203

11.4 RMI over IIOP 的性能影响 203

第12章 Jini 及其性能 204

12.1 Jini 概述 204

12.1.1 查找 205

12.1.2 发现 205

12.1.3 租借 205

12.1.4 远程事件 206

12.1.5 事务 206

12.2 Jini 中的性能考虑 207

12.3 本章小结 207

第五部分 应用程序模型 209

第13章 Java 的使用 209

13.2 网内 210

13.1 网外 210

13.3 应用程序连接 211

13.4 数据库上 212

13.5 应用程序包装 213

13.6 对象下 214

13.7 组合方法 215

13.8 本章小结 216

第14章 性能含义 217

14.1 网外 217

14.2 网内 218

14.3.1 字符编码及尾数 220

14.3 应用程序连接 220

14.3.2 远程对象的累积 223

14.4 应用程序包装 223

14.4.1 过多的客户交互 224

14.4.2 容量限制 225

14.4.3 减少客户-服务器交互 225

14.5 数据库上 226

14.6 对象下 227

14.6.1 过多的客户交互 228

14.6.2 过多的远程对象交互 229

14.6.3 过多的中件交互 231

14.6.4 内存泄漏和对象驻留 242

14.6.5 过多的垃圾回收 246

14.7 本章小结 247

第15章 系统调整 249

15.1 调整内存和系统 249

第六部分 扩大应用程序规模 249

15.1.1 SanFrancisco 解决方案 250

15.1.2 EJB 解决方案 250

15.1.3 调整数据库 250

15.1.4 操作系统内存分配 251

15.1.5 平衡内存要求 252

15.2 磁盘配置 253

15.3 网络配置 254

15.4 性能调整的过程 254

15.5 本章小结 256

16.1 应用程序及其环境 257

第16章 大规模的影响 257

16.1.1 内存 258

16.1.2 处理器 259

16.1.3 输入/输出 260

16.1.4 软件 260

16.2 大规模的影响 260

16.3 SMP 和堆影响 261

16.3.1 在 SMP 上的堆分配和垃圾回收 261

16.3.2 为什么需要多重服务器 263

16.3.3 对象的布局、访问和复制 264

16.4 本章小结 265

附录 A 使用的机器 266