返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:

  • 正版 虚拟机设计与实现 以JVM为例 [中]李晓峰(Xiao-Feng Li)
  • 新华书店旗下自营,正版全新
    • 作者: [中]李晓峰(Xiao-Feng Li)著 | [中]李晓峰(Xiao-Feng Li)编 | [中]李晓峰(Xiao-Feng Li)译 | [中]李晓峰(Xiao-Feng Li)绘
    • 出版社: 人民邮电出版社
    • 出版时间:2019-11-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    美阅书店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: [中]李晓峰(Xiao-Feng Li)著| [中]李晓峰(Xiao-Feng Li)编| [中]李晓峰(Xiao-Feng Li)译| [中]李晓峰(Xiao-Feng Li)绘
    • 出版社:人民邮电出版社
    • 出版时间:2019-11-01
    • 版次:1
    • 印次:1
    • 印刷时间:2020-01-14
    • 字数:560000
    • 页数:12
    • 开本:24开
    • ISBN:9787115527288
    • 版权提供:人民邮电出版社
    • 作者:[中]李晓峰(Xiao-Feng Li)
    • 著:[中]李晓峰(Xiao-Feng Li)
    • 装帧:平装
    • 印次:1
    • 定价:129.00
    • ISBN:9787115527288
    • 出版社:人民邮电出版社
    • 开本:24开
    • 印刷时间:2020-01-14
    • 语种:中文
    • 出版时间:2019-11-01
    • 页数:12
    • 外部编号:9692123
    • 版次:1
    • 成品尺寸:暂无

    第 一部分 虚拟机基础
    第 1章 虚拟机简介 2
    1.1 虚拟机类型 2
    1.2 为什么需要虚拟机 3
    1.3 虚拟机示例 4
    1.3.1 JavaScript引擎 4
    1.3.2 Perl引擎 5
    1.3.3 Android Java VM 5
    1.3.4 Apache Harmony 6
    第 2章 虚拟机内部组成 7
    2.1 虚拟机核心组件 7
    2.1.1 加载器与动态链接器 7
    2.1.2 执行引擎 8
    2.1.3 内存管理器 8
    2.1.4 线程调度器 9
    2.1.5 语言扩展 9
    2.1.6 传统模型与虚拟机模型 10
    2.2 虚拟ISA 11
    2.2.1 JVM 12
    2.2.2 JVM与CLR 15
    第3章 虚拟机中的数据结构 17
    3.1 对象与类 17
    3.2 对象表示 18
    3.3 方法描述 18
    第二部分 虚拟机设计
    第4章 执行引擎设计 22
    4.1 解释器 22
    4.1.1 指令 23
    4.1.2 选择性内联 23
    4.2 JIT编译 23
    4.2.1 基于方法的JIT 24
    4.2.2 基于踪迹的JIT 26
    4.2.3 基于区域的JIT 29
    4.3 解释器与JIT编译器的关系 30
    4.4 AOT编译 31
    4.5 编译时与运行时 33
    第5章 垃圾回收设计 37
    5.1 对象生存期 37
    5.2 引用计数 38
    5.3 对象追踪 40
    5.4 RC与对象追踪 42
    5.5 GC安全点 43
    5.6 常用追踪GC算法 45
    5.6.1 标记清除 46
    5.6.2 追踪复制 46
    5.7 常用追踪GC变体 48
    5.7.1 标记压缩 48
    5.7.2 滑动压缩 48
    5.7.3 追踪转发 49
    5.7.4 标记复制 50
    5.7.5 分代式GC 50
    5.8 移动式GC与非移动式GC 53
    5.8.1 数据局部性 53
    5.8.2 跳增指针分配 53
    5.8.3 空闲列表与分配位图 53
    5.8.4 离散大小列表 54
    5.8.5 标记位与分配位 54
    5.8.6 线程局部分配 55
    5.8.7 移动式GC与非移动式GC的混合 56
    第6章 线程设计 58
    6.1 什么是线程 58
    6.2 内核线程与用户线程 59
    6.3 VM线程到OS线程的映射 61
    6.4 同步构件 63
    6.5 monitor 65
    6.5.1 互斥 65
    6.5.2 条件变量 66
    6.5.3 monitorenter 66
    6.5.4 monitorexit 69
    6.5.5 Object.wait() 71
    6.5.6 Object.notify() 71
    6.6 原子 73
    6.7 monitor与原子 75
    6.7.1 阻塞与非阻塞 75
    6.7.2 中央控制点 75
    6.7.3 锁与非锁 75
    6.7.4 非阻塞之上的阻塞 76
    6.8 回收器与修改器 77
    6.9 线程局部数据 78
    6.10 GC的线程暂停支持 81
    6.10.1 GC安全点 81
    6.10.2 GC安全区域 83
    6.10.3 基于锁的安全点 86
    6.10.4 回收中的线程交互 87
    第三部分 虚拟机内部支持
    第7章 本地接口 92
    7.1 为何需要本地接口 92
    7.2 从托管代码到本地代码的转换 93
    7.2.1 本地方法封装 94
    7.2.2 封装代码的GC支持 96
    7.2.3 封装代码的同步支持 98
    7.3 本地方法实现的绑定 99
    7.4 本地代码到托管代码的转换 99
    7.5 本地代码到本地代码的转换 102
    7.5.1 通过JNI API的本地到本地转换 102
    7.5.2 为什么在本地到本地转换中使用JNI API 105
    第8章 栈展开 107
    8.1 为何需要栈展开 107
    8.2 Java方法帧的栈展开 108
    8.2.1 栈展开设计 108
    8.2.2 栈展开实现 110
    8.3 本地方法帧的栈展开 112
    8.3.1 栈展开设计 112
    8.3.2 Java到本地封装设计 114
    8.3.3 栈展开实现 116
    8.3.4 本地帧与C帧 117
    第9章 垃圾回收支持 119
    9.1 为何需要垃圾回收支持 119
    9.2 在Java代码中支持垃圾回收 121
    9.2.1 GC-map 121
    9.2.2 带寄存器的栈展开 124
    9.3 在本地代码中支持垃圾回收 126
    9.3.1 对象引用访问 127
    9.3.2 对象句柄实现 129
    9.3.3 GC安全性维护 132
    9.3.4 对象体访问 133
    9.3.5 对象分配 135
    9.4 在同步方法中支持垃圾回收 136
    9.4.1 同步Java方法 136
    9.4.2 同步本地方法 138
    9.5 Java与本地代码转换中的GC支持 140
    9.5.1 本地到Java 140
    9.5.2 Java到本地 142
    9.5.3 本地到本地 142
    9.6 全局根集 144
    第 10章 运行时辅助 145
    10.1 为何需要运行时辅助 145
    10.2 带运行时辅助的VM服务设计 147
    10.2.1 运行时辅助操作 147
    10.2.2 运行时辅助实现 148
    10.2.3 JNI API作为运行时辅助 150
    10.3 没有运行时辅助的VM服务设计 151
    10.3.1 运行时辅助的快速路径 153
    10.3.2 快速路径VM服务编程 154
    10.4 主要VM服务 154
    第 11章 异常抛出 157
    11.1 保存异常抛出上下文 157
    11.1.1 VM保存的上下文 158
    11.1.2 Linux中OS保存的上下文 158
    11.1.3 Windows中OS保存的上下文 159
    11.1.4 同步与异步异常 160
    11.2 本地代码内与跨本地代码异常处理 161
    11.2.1 本地代码内的异常处理 161
    11.2.2 带异常Java代码返回到本地代码 162
    11.2.3 带异常的本地代码返回到Java代码 166
    11.3 保存栈轨迹 167
    11.4 找到异常处理器 169
    11.5 控制转移 172
    11.5.1 控制转移操作 172
    11.5.2 用于控制转移的寄存器 173
    11.5.3 数据寄存器恢复 174
    11.5.4 控制寄存器修正 176
    11.5.5 执行恢复 176
    11.5.6 未捕获异常 179
    第 12章 终结与弱引用 180
    12.1 终结 180
    12.2 为何需要弱引用 182
    12.3 对象生存期状态 184
    12.3.1 对象状态转换 185
    12.3.2 引用队列 187
    12.3.3 引用对象状态转换 187
    12.4 引用对象实现 189
    12.5 引用对象处理顺序 191
    第 13章 虚拟机模块化设计 194
    13.1 VM组件 194
    13.2 对象信息暴露 197
    13.3 垃圾回收器接口 199
    13.4 执行引擎接口 202
    13.5 跨组件优化 203
    第四部分 垃圾回收优化
    第 14章 针对吞吐量的GC优化 208
    14.1 部分堆回收与全堆回收之间的适应性调整 208
    14.2 分代式与非分代式算法之间的适应性调整 213
    14.3 堆的空间大小的适应性调整 217
    14.3.1 空间大小扩展 218
    14.3.2 NOS大小 219
    14.3.3 部分转发NOS设计 221
    14.3.4 半空间NOS设计 221
    14.3.5 aged-mature NOS设计 223
    14.3.6 回退回收 225
    14.4 分配空间之间的适应性调整 225
    14.5 大OS页与预取 230
    第 15章 针对可扩展性的GC优化 232
    15.1 回收阶段 232
    15.2 并行对象图遍历 233
    15.2.1 任务共享 234
    15.2.2 工作偷取 234
    15.2.3 任务推送 235
    15.3 并行对象标记 238
    15.4 并行压缩 239
    15.4.1 并行LISP2压缩器 239
    15.4.2 对象依赖树 241
    15.4.3 带用于转发指针的目标表的压缩器 244
    15.4.4 基于对象节的压缩器 246
    15.4.5 单趟就地压缩器 247
    第 16章 针对响应性的GC优化 249
    16.1 区域式GC 249
    16.2 并发追踪 252
    16.2.1 起始快照 252
    16.2.2 增量更新 256
    16.2.3 用三色术语表示并发追踪 259
    16.2.4 使用读屏障的并发追踪 260
    16.3 并发根集枚举 261
    16.3.1 并发根集枚举设计 262
    16.3.2 在根集枚举过程中追踪堆 265
    16.3.3 并发栈扫描 266
    16.4 并发回收调度 267
    16.4.1 调度并发根集枚举 267
    16.4.2 调度并发堆追踪 269
    16.4.3 并发回收调度 271
    16.4.4 并发回收阶段转换 272
    第 17章 并发移动式回收 277
    17.1 并发复制:“目标空间不变” 277
    17.1.1 基于槽位的“目标空间不变”算法 277
    17.1.2 “目标空间不变”性 280
    17.1.3 对象转发 282
    17.1.4 基于对象的“目标空间不变”算法 283
    17.1.5 基于虚拟内存的“目标空间不变”算法 285
    17.2 并发复制:“当前副本不变” 286
    17.2.1 对象移动风暴 286
    17.2.2 “当前副本不变”设计 287
    17.2.3 并发复制与并发堆追踪的关系 289
    17.3 并发复制:“源空间不变” 292
    17.3.1 “源空间不变”设计 292
    17.3.2 部分转发“源空间不变”设计 294
    17.4 无STW的完整并发移动 295
    17.5 并发压缩回收 296
    17.5.1 并发区域复制式回收 296
    17.5.2 基于虚拟内存的并发压缩 299
    第五部分 线程交互优化
    第 18章 monitor性能优化 308
    18.1 惰性锁 308
    18.2 瘦锁 310
    18.2.1 瘦锁锁定路径 310
    18.2.2 瘦锁解锁路径 313
    18.2.3 竞争标志重置支持 316
    18.3 胖锁 318
    18.3.1 整合monitor数据结构 318
    18.3.2 交由OS来支持 319
    18.3.3 瘦锁膨胀为胖锁 321
    18.3.4 休眠等待被竞争瘦锁 324
    18.4 Tasuki锁 327
    18.4.1 将同一个胖锁monitor用于竞争控制 327
    18.4.2 胖锁收缩为瘦锁 331
    18.5 线程局部锁 334
    18.5.1 锁保留 335
    18.5.2 线程亲密锁 339
    第 19章 基于硬件事务内存的设计 346
    19.1 硬件事务内存 346
    19.1.1 从事务数据库到事务内存 346
    19.1.2 Intel的HTM实现 347
    19.2 使用HTM的monitor实现 348
    19.2.1 基于HTM的monitor的正确性问题 349
    19.2.2 基于HTM的monitor的性能问题 352
    19.3 使用HTM的并发垃圾回收 355
    19.3.1 GC中HTM的机会 355
    19.3.2 复制式回收 357
    19.3.3 压缩式回收 360
    参考文献 364

    本书从一位虚拟机(VM)架构师的角度,以易于理解、层层深入的方式介绍了各种主题和算法,尤其是不同VM通用的主要技术。这些算法用图示充分解释,用便于理解的代码片段实现,使得这些抽象概念对系统软件工程师而言具像化并可编程。书中还包括一些同类文献中较少涉及的主题,例如运行时辅助、栈展开和本地接口。本书集理论性与实践性于一身,不仅结合了高层设计功能与底层实现,而且还结合了主题与商业解决方案,是VM设计和工程实践方面的理想参考读物。

    在当今的计算系统中,虚拟机已经变得无处不在--从物联网节点到移动电话、个人计算机,再到云平台。因其所能赋予软件的一些重要属性,如安全性、高生产率和可移植性,虚拟机一直吸引着软件研究人员和开发者的兴趣和关注。 本书旨在通过循序渐进、通俗易懂的方式讲解虚拟机的通用技术,主要以JVM设计为例,并兼顾其他虚拟机。本书还包括一些同类文献中较少涉及的主题,例如运行时辅助、栈展开和本地接口。本书是虚拟机设计和工程实践方面的理想参考读物,读者若掌握书中的知识点,便能为任意一种语言虚拟机的设计开发打下坚实的基础。 虚拟机基础:类型、内部组成、数据结构 虚拟机设计:执行引擎设计、垃圾回收设计、线程设计 虚拟机内部支持:本地接口、栈展开、垃圾回收支持、运行时辅助,等等 垃圾回收(GC)优化:针对吞吐量的GC优化、针对可扩展性的GC优化、针对响应性的GC优化、并发移动式回收 线程交互优化:monitor性 “本书论述了关于虚拟机设计与实现的主题,已经成为我不可或缺的参考书。我向系统软件开发者,尤其是托管运行时系统的开发者,强烈本书,因为本书能够清晰地解答他们在探索虚拟机相关话题时所产生的疑问。”——周志德,Futurewei Technologies席科学家 “当前语言虚拟机的应用范围越来越广,各类新的语言虚拟机也层出不穷,虚拟机技术的专业图书却不多见。本书是作者多年研究与实践的心得与沉淀,值得一读。”——胡子昂,华为硅谷基础软件实验室主任、华为Fellow “关于虚拟机架构的设计,本书不但阐明了是什么,而且讨论了为什么。作者从架构师的角度高屋建瓴地分析了技术选择背后的来龙去脉,相信读者一定会受益匪浅。”——慎熙鹏,北卡罗来纳州立大学计算机系教授 “虚拟机技术在编程语言、编译器、计算机架构、Web系统等领域均有深远的影响。作者具备这些领域的工作经历,本书的写作也扎根于其在虚拟机研究及开发过程中的一手资料。本书通过循序渐进的方式,将虚拟机技术融入丰富的示例与代码中,使得读者能够同时在理论和实践的层面充分理解虚拟机技术的精髓。”——朱子青,英伟达软件架构师 “本书作者来自工业界,有着丰富的工程实践经验。书中同时包含了学术界在虚拟机相关领域的研究成果。其中重要的技术讨论,既有代码示例,又有理论分析,能帮助读者透彻地理解虚拟机技术的要点、难点。”——林子超,美国高通研发总监 

    在当今的计算系统中,虚拟机已经变得无处不在--从物联网节点到移动电话、个人计算机,再到云平台。因其所能赋予软件的一些重要属性,如安全性、高生产率和可移植性,虚拟机一直吸引着软件研究人员和开发者的兴趣和关注。
    本书旨在通过循序渐进、通俗易懂的方式讲解虚拟机的通用技术,主要以JVM设计为例,并兼顾其他虚拟机。本书还包括一些同类文献中较少涉及的主题,例如运行时辅助、栈展开和本地接口。本书是虚拟机设计和工程实践方面的理想参考读物,读者若掌握书中的知识点,便能为任意一种语言虚拟机的设计开发打下坚实的基础。
    ●虚拟机基础:类型、内部组成、数据结构●虚拟机设计:执行引擎设计、垃圾回收设计、线程设计●虚拟机内部支持:本地接口、栈展开、垃圾回收支持、运行时辅助,等等●垃圾回收(GC)优化:针对吞吐量的GC优化、针对可扩展性的GC优化、针对响应性的GC优化、并发移动式回收●线程交互优化:monitor性“本书论述了关于虚拟机设计与实现的高级主题,已经成为我不可或缺的参考书。我向系统软件开发者,尤其是托管运行时系统的开发者,强烈推荐本书,因为本书能够清晰地解答他们在探索虚拟机相关话题时所产生的疑问。”——周志德,FutureweiTechnologies首席科学家“当前语言虚拟机的应用范围越来越广,各类新的语言虚拟机也层出不穷,虚拟机技术的专业图书却不多见。本书是作者多年研究与实践的心得与沉淀,值得一读。”——胡子昂,华为硅谷基础软件实验室主任、华为Fellow“关于虚拟机架构的设计,本书不但阐明了是什么,而且讨论了为什么。作者从架构师的角度高屋建瓴地分析了技术选择背后的来龙去脉,相信读者一定会受益匪浅。”——慎熙鹏,北卡罗来纳州立大学计算机系教授“虚拟机技术在编程语言、编译器、计算机架构、Web系统等领域均有深远的影响。作者具备这些领域的工作经历,本书的写作也扎根于其在虚拟机研究及开发过程中的一手资料。本书通过循序渐进的方式,将虚拟机技术融入丰富的示例与代码中,使得读者能够同时在理论和实践的层面充分理解虚拟机技术的精髓。”——朱子青,英伟达高级软件架构师“本书作者来自工业界,有着丰富的工程实践经验。书中同时包含了学术界在虚拟机相关领域的研究成果。其中重要的技术讨论,既有代码示例,又有理论分析,能帮助读者透彻地理解虚拟机技术的要点、难点。”——林子超,美国高通研发总监

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购