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

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

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

  • 虚拟机设计与实现 以JVM为例 李晓峰 著 单业 译 专业科技 文轩网
  • 新华书店正版
    • 作者: 李晓峰著 | | 单业译
    • 出版社: 人民邮电出版社
    • 出版时间:2020-01-01 00:00:00
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    文轩网图书旗舰店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

         https://product.suning.com/0070067633/11555288247.html

     

    商品参数
    • 作者: 李晓峰著| 单业译
    • 出版社:人民邮电出版社
    • 出版时间:2020-01-01 00:00:00
    • 版次:1
    • 印次:1
    • 印刷时间:2020-01-01
    • 字数:560000
    • 页数:368
    • 开本:16开
    • 装帧:平装
    • ISBN:9787115527288
    • 国别/地区:中国
    • 版权提供:人民邮电出版社

    虚拟机设计与实现 以JVM为例

    作  者:李晓峰 著 单业 译
    定  价:129
    出 版 社:人民邮电出版社
    出版日期:2020年01月01日
    页  数:368
    装  帧:平装
    ISBN:9787115527288
    主编推荐

    内容简介

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

    作者简介

      

    精彩内容

    目录
    第一部分虚拟机基础
    第1章虚拟机简介 2
    1.1虚拟机类型 2
    1.2为什么需要虚拟机 3
    1.3虚拟机示例 4
    1.3.1JavaScript引擎 4
    1.3.2Perl引擎 5
    1.3.3AndroidJavaVM 5
    1.3.4ApacheHarmony 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.1JVM 12
    2.2.2JVM与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.2JIT编译 23
    4.2.1基于方法的JIT 24
    4.2.2基于踪迹的JIT 26
    4.2.3基于区域的JIT 29
    4.3解释器与JIT编译器的关系 30
    4.4AOT编译 31
    4.5编译时与运行时 33
    第5章垃圾回收设计 37
    5.1对象生存期 37
    5.2引用计数 38
    5.3对象追踪 40
    5.4RC与对象追踪 42
    5.5GC安全点 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.3VM线程到OS线程的映射 61
    6.4同步构件 63
    6.5monitor 65
    6.5.1互斥 65
    6.5.2条件变量 66
    6.5.3monitorenter 66
    6.5.4monitorexit 69
    6.5.5Object.wait() 71
    6.5.6Object.notify() 71
    6.6原子 73
    6.7monitor与原子 75
    6.7.1阻塞与非阻塞 75
    6.7.2中央控制点 75
    6.7.3锁与非锁 75
    6.7.4非阻塞之上的阻塞 76
    6.8回收器与修改器 77
    6.9线程局部数据 78
    6.10GC的线程暂停支持 81
    6.10.1GC安全点 81
    6.10.2GC安全区域 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通过JNIAPI的本地到本地转换 102
    7.5.2为什么在本地到本地转换中使用JNIAPI 105
    第8章栈展开 107
    8.1为何需要栈展开 107
    8.2Java方法帧的栈展开 108
    8.2.1栈展开设计 108
    8.2.2栈展开实现 110
    8.3本地方法帧的栈展开 112
    8.3.1栈展开设计 112
    8.3.2Java到本地封装设计 114
    8.3.3栈展开实现 116
    8.3.4本地帧与C帧 117
    第9章垃圾回收支持 119
    9.1为何需要垃圾回收支持 119
    9.2在Java代码中支持垃圾回收 121
    9.2.1GC-map 121
    9.2.2带寄存器的栈展开 124
    9.3在本地代码中支持垃圾回收 126
    9.3.1对象引用访问 127
    9.3.2对象句柄实现 129
    9.3.3GC安全性维护 132
    9.3.4对象体访问 133
    9.3.5对象分配 135
    9.4在同步方法中支持垃圾回收 136
    9.4.1同步Java方法 136
    9.4.2同步本地方法 138
    9.5Java与本地代码转换中的GC支持 140
    9.5.1本地到Java 140
    9.5.2Java到本地 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.3JNIAPI作为运行时辅助 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.1VM保存的上下文 158
    11.1.2Linux中OS保存的上下文 158
    11.1.3Windows中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.1VM组件 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.2NOS大小 219
    14.3.3部分转发NOS设计 221
    14.3.4半空间NOS设计 221
    14.3.5aged-matureNOS设计 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.4Tasuki锁 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.2Intel的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.1GC中HTM的机会 355
    19.3.2复制式回收 357
    19.3.3压缩式回收 360
    参考文献 364

    售后保障

    最近浏览

    猜你喜欢

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

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

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

    查看我的收藏夹

    确定

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

    关闭

    抱歉,您暂无任性付资格

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