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

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

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

  • 全新JVM G1源码分析和调优彭成寒9787111621973
  • 正版
    • 作者: 彭成寒著 | 彭成寒编 | 彭成寒译 | 彭成寒绘
    • 出版社: 机械工业出版社
    • 出版时间:2019-04-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    萌萌哒图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 彭成寒著| 彭成寒编| 彭成寒译| 彭成寒绘
    • 出版社:机械工业出版社
    • 出版时间:2019-04-01
    • 版次:1
    • 印次:1
    • 页数:285
    • 开本:16开
    • ISBN:9787111621973
    • 版权提供:机械工业出版社
    • 作者:彭成寒
    • 著:彭成寒
    • 装帧:平装
    • 印次:1
    • 定价:89.00
    • ISBN:9787111621973
    • 出版社:机械工业出版社
    • 开本:16开
    • 印刷时间:暂无
    • 语种:暂无
    • 出版时间:2019-04-01
    • 页数:285
    • 外部编号:1201855788
    • 版次:1
    • 成品尺寸:暂无

    前  言章  垃圾回收概述 11.1  Java发展概述 11.2  本书常见术语 41.3  回收算法概述 61.3.1  分代管理算法 71.3.2  复制算法 71.3.3  标记清除 81.3.4  标记压缩 91.3.5  算法小结 91.4  JVM垃圾回收器概述 91.4.1  串行回收 91.4.2  并行回收 101.4.3  并发标记回收 101.4.4  垃圾优先回收 10第2章  G1的基本概念 142.1  分区 142.2  G1停顿预测模型 20.  卡表和位图 222.4  对象头 242.5  内存分配和管理 272.6  线程 302.6.1  栈帧 322.6.2  句柄 342.6.3  JVM本地方法栈中的对象 362.6.4  Java本地方法栈中的对象 402.7  日志解读 402.8  参数介绍和调优 41第3章  G1的对象分配 433.1  对象分配概述 433.2  快速分配 463.3  慢速分配 563.3.1  大对象分配 583.3.2  的分配尝试 603.4  G1垃圾回收的时机 613.4.1  分配时发生回收 613.4.2  外部调用的回收 613.5  参数介绍和调优 62第4章  G1的Ref?ine线程 644.1  记忆集 644.2  Ref?ine线程的功原理 724.2.1  抽样线程 724.2.2  管理RSet 744..  Mutator处理DC 784.2.4  Ref?ine线程的工作原理 784.3  Ref?inement Zone 854.4  RSet涉及的写屏障 864.5  日志解读 874.6  参数介绍和调优 90第5章  新生代回收 935.1  YGC算法概述 935.2  YGC代码分析 965.2.1  并行任务 965.2.2  处理 1155.3  YGC算法演示 1165.3.1  选择CSet 1175.3.2  根处理 1175.3.3  RSet处理 1185.3.4  复制 1195.3.5  Redirty 1205.3.6  释放空间 1205.4  日志解读 1215.4.1  YGC日志 1215.4.2  大对象日志分析 1255.4.3  对象年龄日志分析 1255.5  参数介绍和调优 126第6章  混合回收 1296.1  并发标记算法详解 1306.2  并发标记算法的难点 1336.2.1  三色标记法 1336.2.2  难点示意图 1336..  再谈写屏障 1356.3  G1中混合回收的步骤 1416.4  混合回收中并发标记处理的线程 1456.4.1  并发标记线程启动的时机 1476.4.2  根扫描子阶段 1486.4.3  并发标记子阶段 1526.4.4  再标记子阶段 1596.4.5  清理子阶段 1606.4.6  启动混合收集 1676.5  并发标记算法演示 1706.5.1  初始标记子阶段 1716.5.2  根扫描子阶段 1716.5.3  并发标记子阶段 1716.5.4  再标记子阶段 1726.5.5  清理子阶段 1736.6  GC活动图 1746.7  日志解读 1746.8  参数优化 178第7章  Full GC 1817.1  Evac失败 1817.2  串行FGC 1877.2.1  标记活跃对象 1887.2.2  计算对象的新地址 1907..  更新引用对象的地址 1907.2.4  移动对象完成压缩 1937.2.5  后处理 1947.3  并行FGC 1967.3.1  并行标记活跃对象 1977.3.2  计算对象的新地址 1987.3.3  更新引用对象的地址 2007.3.4  移动对象完成压缩 2007.3.5  后处理 2017.4  日志解读 2017.5  参数介绍和调优 202第8章  G1中的引用处理 2038.1  引用概述 2038.2  可回收对象发现 2078.3  在GC时的处理发现列表 2108.4  重新激活可达的引用 2148.5  日志解读 2158.6  参数介绍和调优 215第9章  G1的新特:字符串去重 2179.1  字符串去重概述 2179.2  日志解读 2209.3  参数介绍和调优 2229.4  字符串去重和String.intern的区别 2229.5  String.intern中的实现 20章  线程中的安全点 22610.1  安全点的基本概念 22610.2  G1并发线程进入安全点 22710.3  解释线程进入安全点 010.4  编译线程进入安全点 010.5  正在执行本地代码的线程进入安全点 10.6  安全点小结 10.7  日志分析 10.8  参数介绍和调优 1章  垃圾回收器的选择 24111.1  如何衡量垃圾回收器 24111.2  G1调优的方向 2432章  新一代垃圾回收器 24712.1  Shenandoah 24712.2  ZGC 258附录A  编译调试JVM 262附录B  本地内存跟踪 272附录C  阅读JVM需要了解的C++知识 276

    彭成寒,不错Java,目前主要从事风控系统设计、算法建模、大数据处理等工作。有超过10年的Java和C++开发经验。

    G1是目前成熟的垃圾回收器,已经广泛应用在众多公司的生产环境中。我们知道,CMS作为使用为广泛的垃圾回收器,也有令人头疼的问题,即如何对其众多的参数进行正确的设置。G1的目标就是替代CMS,所以在设计之初就希望降低程序员的负担,减少人工的介入。但这并不意味着我们完全不需要了解G1的原理和参数调优。笔者在实际工作中遇到过一些因参数设置不正确而导致GC停顿时间过长的问题。但要正确设置参数并不容易,这里涉及两个方面:,需要对G1的原理熟悉,只有熟悉G1的原理才知道调优的方向;第二,能分析和解读G1运行的日志信息,根据日志信息找到G1运行过程中的异常信息,并推断哪些参数可以解决这些异常。本书尝试从G1的原理出发,系统地介绍新生代回收、混合回收、Full GC、并发标记、Refine线程等内容;同时依托于jdk8u的源代码介绍Hotspot如何实现G1,通过对源代码的分析来了解G1提供了哪些参数、这些参数的具体意义;本书还设计了一些示例代码,给出了G1在运行这些示例代码时的日志,通过日志分析来尝试调整参数并达到能优化,还分析了参数调整可能带来的负面影响。乍听起来,G1复杂,应该会有很多的参数。实际上在JDK8的G1实现,一增了93个参数,其中开发参数(develop)有41个,产品参数(product)有31个,诊断参数(diagnostic)有9个,实验参数(experimental)有12个。开发参数需要在调试版本中才能进行验(本只涉及个别参数),其余的三类参数都可以在发布版本中打开、验和使用。本书除了几个用于验的诊断参数外,覆盖了发布版本中涉及的所有参数,为读者理解G1以及调优G1提供了帮。本书共分为12章,主要内容如下:章介绍垃圾回收的发展及使用的算法,同时还介绍一些重要并常见的术语。该章的知识不仅仅限于本书介绍的G1,对于研读JVM文章或者JVM源码都有帮。第2章介绍G1中的基本概念,包括分区、卡表、根集合、线程栈等和垃圾回收相关的基本知识点。第3章介绍G1是如何分配对象的,包括TLAB和慢速分配,G1的对象分配和垃圾回收器的对象分配类似,只不过在分配的时候以分区为基础,除此之外没有额外的变化,所以该章知识不仅仅适用于G1也适用于垃圾回收器,介绍了参数调优,同样也适用于的垃圾回收器。第4章介绍G1 Refine线程,包括G1如何管理和处理代际引用,从而加快垃圾回收速度,介绍了Refinement调优涉及的参数;虽然CMS也有卡表处理代际引用,但是G1的处理和CMS并不相同,Refine线程是G1新引入的部分。第5章介绍新生代回收,包括G1如何进行新生代回收,包括对象标记、复制、分区释放等细节,还介绍了新生代调优涉及的参数。第6章介绍混合回收。主要介绍G1的并发标记算法及其难点,以及G1中如何解决这个难点,同时介绍了并发标记的步骤:并发标记、Remark(再标记)和清理阶段;还介绍了并发标记的调优参数。第7章介绍Full GC。在G1中,Full GC对整个堆进行垃圾回收,该章介绍G1的串行Full GC和JDK 10之后的并行Full GC算法。第8章介绍垃圾回收过程中如何处理引用,该功能不是G1独有的,也适用于垃圾回收器。第9章介绍G1的新特:字符串去重。根据OpenJDK的官方文档,该特可平均节约内存13%左右,所以这是一个有用的特,值得大家尝试和使用。另外,该特和JDK中String类的intern方法有一些类似的地方,所以该章还比较了它们之间的不同。0章介绍线程中的安全点。安全点在实际调优中涉及的并不多,所以很多人并不是特别熟悉。实际上,垃圾回收发生时,在进入安全点中做了不少的工作,而这些工作基本上是串行进行的,这些事情很有可能导致垃圾回收的时间过长。该章除了介绍如何进入安全点之外,还介绍了在安全点中做的一些回收工作,以及当发现它们导致GC过长时该如何调优。1章介绍如何选择垃圾回收器,以及选择G1遇到问题需要调优时我们该如何下手。该章属于理论的指导,在实际工作中需要根据本书提到的参数正面影响和负面影响综合考虑,并不断调整。2章介绍了下一代垃圾回收器Shenandoah和ZGC。G1作为发挥重要作用的垃圾回收器仍有不足之处,因此未来的垃圾回收器仍会继续发展,该章介绍了下一代垃圾回收器Shenandoah和ZGC对G1的改进之处及其工作原理。本书的附录包含如下内容:附录A介绍如何开始阅读和调试JVM代码。这里简单介绍了G1的代码架构和组织形式。另外简单介绍了Linux的调试工具GDB,这个工具对于想要了解JVM细节的同学必不可少。附录B介绍如何使用NMT对JVM内存进行跟踪和调试。这个知识对于想要深入理解JVM内存的管理有帮,另外在实际工作中,特别是JDK升级中我们必须比较同一应用在不同JVM运行情况下的内存使用。附录C介绍了Java程序员阅读JVM时需要知道的一些C++知识。这里并未罗列C++的语法以及语法特,仅仅介绍一些C++语言特有的、而Java语言没有的语法,或者Java语言中的使用或理解不同于C++语言的部分语法。这个知识是为Java程序员准备的,特别是为在阅读JVM代码时准备的。G1在JDK 6中出现,经历JDK 7的发展,到JDK 8已经相当成熟,在JDK 9之后G1就作为JVM的默认垃圾回收器。JDK 8作为Oracle公司长期支持的版本,本书主要基于JDK 8进行分析,所用的版本是jdk8u60。在第7章中为了扩展读者的视野,追踪的,还介绍了JDK 10中的并行Full GC。读者可以自行到OpenJDK的官网下载,也可以使用笔者在GitHub中的备份(JDK 8: https://itu.com/chenghanpeng/jdk8u60,JDK 10:https://itu.com/chenghanpeng/jdk10u)。本书在分析源码的时候会给出源代码所属的文件,例如在介绍G1分区类型时,指出源代码位于host/rc/share/vm/gc_implementation/g1/heapRegionType.hpp,这里的hotspot就是你下载的jdk8u60代码里面的一级目录。如果你不希望在本地保留源代码可以直接浏览网址https://itu.com/chenghanpeng/jdk8u60,在此你可以找到这个一级目录hotspot,然后通过逐个查看子目录src、share、vm、gc_implementation、g1就可以找到源文件heapRegionType.hpp。需要注意的是,在分析源码的时候为了节约篇幅,通常会对原始的代码进行一些调整,例如删除一些大括号、统计信息、打印信息,或者删除一些不影响理解原理和算法的代码,大家在和源码比较时需要注意这些变化。另外对于定义在header文件和cpp文件中的一些函数,为了使代码紧凑,通常会忽略头文件中的定义,直接按照C++的语法,即类名::成员函数的方式给出源码,这样的代码可能和原文件不完全一致,但是完全符合C++语言的组织,阅读源码时要注意将定义和实现分开。由于笔者水平有,间仓促,书中难免出现一些错误或者不准确的地方,恳请读者批评指正。可以通过https://itu.com/chenghanpeng/jdk8u60/issues进行讨论,期待能够得到读者朋友们的真情反馈,在技术道路上互勉共进。在本书的写作过程中,得到了很多朋友以及同事的帮和支持,在此表示衷心的感谢!感谢吴怡编辑的支持和鼓励,在写作过程中给出了多的意见和建议,不厌其烦地认真和笔者沟通,力争做到清晰、准确、无误。感谢你的耐心,为你的专业精神致敬!感谢我的家人,特别是谢谢我的儿子,体谅爸爸牺牲了陪伴你的时间。有了你们的支持和帮,我才有时间和精力去完成写作。

    售后保障

    最近浏览

    猜你喜欢

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

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

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

    查看我的收藏夹

    确定

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

    关闭

    抱歉,您暂无任性付资格

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