更多书籍点击进入>> CiCi岛
电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍
★没有一招鲜似的调优秘籍或包罗万象的性能百科 ★GC性能调优需要专门的知识技能才能解决 ★解决的GC性能问题越多,技艺才会越精湛 ★《深入理解JVM & G1 GC》不仅有技术实践,还有设计原理和目标 ★让你深入掌握GC,积累更多技术与经验, ★更好地提升产品性能
G1GC提出了不确定性Region,每个空闲Region不是为某个固定年代准备的,它是灵活的,需求驱动的,所以G1GC代表了先进性。 《深入理解JVM&G1GC》主要为学习Java语言的学生、初级程序员提供GC的使用参考建议及经验,着重介绍了G1GC。中国的软件开发行业已经有几十年了,从目前的行业发展来看,单纯的软件公司很难有发展,目前流行的云计算、物联网企业实际上是综合性IT技术的整合,这就需要有综合能力的程序员。《深入理解JVM&G1GC》作者力求做到知识的综合传播,而不是仅仅针对Java虚拟机和GC调优进行讲解,也力求每一章节都有实际的案例支撑。《深入理解JVM&G1GC》具体包括以下几方面:JVM基础知识、GC基础知识、G1GC的深入介绍、G1GC调优建议、JDK自带工具使用介绍等。 通读《深入理解JVM&G1GC》后,读者可以深入了解G1GC性能调优的许多主题及相关的综合性知识。读者也可以把《深入理解JVM&G1GC》作为参考,对于感兴趣的主题,直接跳到相应章节寻找答案。
★周明耀 12年投资银行项目、分布式计算项目工作经验,IBM开发者论坛专栏作者、InfoQ专栏作者。 一名IT技术狂热爱好者,一名顽强到底的工程师。推崇技术创新、思维创新,对于新技术非常热爱,致力于技术研发、研究,通过发布文章、书籍、互动活动的形式积极推广软件技术。 欢迎添加微信“michael_tec”,共同探讨IT技术话题。
目 录
序 VII
前言 IX
第1章 JVM & GC基础知识 1
1.1 引言 2
1.2 基本术语 3
1.2.1 Java相关术语 4
1.2.2 JVM/GC通用术语 24
1.2.3 G1涉及术语 56
1.3 本章小结 62
★序
这是我第一次为人写序,心中不免忐忑,引用余光中先生对于写序的感受:“我为人写序,于人为略而于文为详,用意也无非要就文本去探人本,亦即其艺术人格;自问与中国传统的序跋并不相悖,但手段毕竟不同了。”周明耀的书追求的是人本,我则尽力而为。
周明耀是我以前的同事,我们是认识十多年的朋友,同时我也是他婚礼的伴郎,见证了他的一步步成长。周明耀无论对工作、技术,或者社会生活,都有着自己独特的见解。他始终对技术充满了敬畏之心,学无止境,并付诸实践。因此,才有了这本书。
以我对GC的理解,想要学习GC,首先需要理解为什么需要GC。随着应用程序所应对的业务越来越庞大、复杂,用户越来越多,没有GC就不能保证应用程序的正常进行。而经常造成STW的GC又跟不上实际的需求,所以才会不断地尝试对GC进行优化。正如周明耀在文中描述的,HotSpot有这么多的垃圾回收器(SerialGC、ParallelGC、ConcurrentMarkSweepGC),为什么还要发布GarbageFirst(G1)GC?原因就是这个。
当今的商业模式,更多依赖市场的力量,不断淘汰旧的行业,把有限的资源让给那些竞争力更强、利润率更高的企业。类似地,硅谷也在不断淘汰过时的人员,从全世界吸收新鲜血液。经过半个多世纪的发展,在硅谷地区形成了只有卓越才能生存的文化理念。本着这样的理念,GC承担了淘汰垃圾、保存优良资产的任务。正如周明耀所说,随着G1GC的出现,GC从传统的连续堆内存布局设计,逐渐走向不连续内存块,这是通过引入Region概念实现的,也就是说,由一堆不连续的Region组成了堆内存。其实也不能说是不连续的,只是它从传统的物理连续逐渐变为逻辑上的连续,这是通过Region的动态分配方式实现的,我们可以把一个Region分配给Eden、Survivor、老年代、大对象区间、空闲区间中的任意一个,而不是固定它的作用,因为越是固定,越是呆板。
总的来说,本书对JavaGC机制的分析深入浅出,是对大数据Java内存回收的优秀实践。读完茅塞顿开、受益匪浅。很多技术细节应用之后,对产品性能有明显提升。在此感谢周明耀的分享,希望他能够写出更多优秀的书籍。
华为南京研究所大数据产品部维护经理吴骏
★前言
7岁那年,当我合上《上下五千年》一套三册全书时,我对自己说,我想当个作家。这一晃27年了,等待了27年,我的第一本书《大话Java性能优化》在2016年4月正式面世,2016年8月第二次印刷,感谢读者的厚爱。第一次印刷时出现一些错别字,请原谅编辑小姑娘,99万字对她来说确实太多了,这是我的责任,未来一定尽全力避免。《深入理解JVM&G1GC》是我的第二本书,也即将面世。对于我的每一本书,我都怀着忐忑、惊喜的心情,就像第一次面对我的女儿“小顽子”,给她取这个小名,是希望她顽强到底,因为我相信,你若顽强到底,一切皆有可能。
我喜欢看书,每年购买的书接近100本,也喜欢技术积累。一直没有出书的想法,直到遇到了电子工业出版社的董老师,在深圳南湖的一席畅谈后,我决定做一位业余的技术作家,致力于中国软件开发行业的技术推广、普及、推动。
每年都要面试很多学生,我感觉中国的大学不太注重实际项目开发能力的培养,较为教条,这也是我的系统丛书首先从Java技术开始的原因,它更加接地气。本书主要为学习Java语言的学生、初级程序员提供JVM和GC的使用和优化建议及经验,力求做到知识的综合传播,而不是仅仅针对Java虚拟机调优进行讲解。本书具体包括以下几方面:JVM基础知识、GC基础知识、G1GC的深入介绍、G1GC调优建议、JDK自带工具使用介绍等。
本书基于JDK8,总的来说,没有一招鲜式的性能调优秘籍或包罗万象的性能百科,能让你摇身一变成为老练的GC性能调优专家。相当数量的GC性能问题还需要专门的知识技能才能解决。性能调优在很大程度上是一门艺术。解决的GC性能问题越多,技艺才会越精湛。我们不只要关心GC的持续演进,也要积极地去了解它的设计原理和设计目标。
最后,自我介绍一下,我叫周明耀,研究生学历,12年工作经验,IBM开发者论坛专家作者。我是一名IT技术狂热爱好者,一名九三学社社员,一名顽强到底的工程师。我推崇技术创新、思维创新,对于新技术非常的热爱。
感谢我的家人,和谐的家庭帮助我完成了这本书。我的妻子,她美丽、细心、博学、偶尔不那么温柔,但是我很爱她。我的小顽子,她天生性格很像我,希望她能够踏踏实实做人,保持创新精神,平平安安、健健康康地生活下去。感谢我妻子的父母、我的父母,他们帮我照顾小孩,我才有时间编写此书。感谢浙江省特级教师、杭州高级化学老师郑克良老师,郑老师的一句永远不要放弃,推动着我多年的发展。感谢数学老师张老师在公开场合对我智商的褒奖,第一次收获这样的赞赏,对我这样内向的孩子是多么的重要,谢谢。
这本书献给我记忆中的爷爷奶奶、外公外婆,你们给我的都是最美的回忆。
我相信这本书不是终点,它是麦克叔叔此生一系列技术书籍的一员,咱们下一本书见。
总的来说,本书对Java GC机制的分析深入浅出,是对大数据Java内存回收的优秀实践。读完茅塞顿开、受益匪浅。很多技术细节应用之后,对产品性能有明显提升。在此感谢周明耀的分享,希望他能够写出更多优秀的书籍。 ——华为南京研究所大数据产品部维护经理 吴骏 每年都要面试很多学生,我感觉中国的大学不太注重实际项目开发能力的培养,较为教条,这也是我的系列丛书首先从Java技术开始的原因,它更加接地气。本书主要为学习Java语言的学生、初级程序员提供JVM和GC的使用和优化建议及经验,力求做到知识的综合传播,而不是仅仅针对Java虚拟机调优进行讲解。本书具体包括以下几方面:JVM基础知识、GC基础知识、G1 GC的深入介绍、G1 GC调优建议、JDK自带工具使用介绍等。 ——周明耀