深入JVM,这本书讲透了G1回收的原理和实现!
中村是CRuby的committer,现在仍每天致力于GC的改善。
在GC书的原稿中,有一章是关于“HotSpotVM的实现”,但因为时间关系,没来得及出版。GC书正式出版后,中村才继续写作这部分。
一开始,他计划只介绍G1GC的实现,但是在写作过程中渐渐改变了想法,觉得还是先写一些算法原理更有助于读者理解,所以又开始埋头写G1GC的算法原理。
【日】中村成洋 | 著
和GC书一样,这本书由“算法篇”和“实现篇”两大部分构成。
在算法篇中,这本书探讨了OpenJDK 7中引入的GC算法——G1GC(Garbage First Garbage Collection)的原理。G1GC中有一个很大的谜团,那就是GC暂停处理的预测暂停时间。算法篇用了数十页的篇幅来揭示它。
(算法篇目录)
左右滑动查看更多
在实现篇中,中村又详细剖析了HotSpotVM的源码。
HotSpotVM实现了包括G1GC在内的多种GC算法。不过这些算法并非凭空而来,而是基于HotSpotVM中专为GC算法设计的框架实现的。因此,中村会带大家去了解作为框架之一的对象管理功能。得益于对象管理功能的接口,多种GC算法之间的切换成为可能,而且新GC算法的添加也变得更加简单。
之后,大家还会了解对象的数据结构和内存分配器。有关分配器的讲解会稍微涉及对操作系统的调用。
除此以外,大家还将了解G1GC中用到的线程管理方法。HotSpotVM内部同样也有能够在GC过程中简单地操作线程的框架,各种GC算法都是通过这个框架来实现并行GC和并发GC的。
再后面就是G1GC的具体实现,讲解了G1GC的并发标记和转移,以及调度程序的实现。这部分尽量省略了算法篇中已经详细讲解过的内容,着重讲解前面没有涉及的内容。
左右滑动查看更多
中村写作本书的目的在于将他走过的“荆棘之路”变成更多人易于踏上的坦途。希望各位读者轻松愉快地走过这条坦途,用最短的时间掌握G1GC。
图文并茂
这本书带点图解系列的风格,特别是算法篇,清晰的配图让GC过程更直观、易懂。
(转移专用记忆集合的构造)
(GC单位时间内的GC暂停时间上限)
中村在写作中不仅融入了自己的独到见解和研究成果,还巧用“打比方”的手法深入浅出。比如在讲解Java监视器时,中村将其比喻为滑雪板租赁商店,在后面讲解监视器的实现时也一直使用这个例子帮助读者加深理解。
(监视器与租赁商店)
(ConcurrentMark类的实现)
(保守式GC与准确式GC)
*准确式GC:能够正确识别指针和非指针的GC。
左右滑动查看更多
作为Javaer必拜山头之一,JVM一直带有那么一些神秘感。希望这本书能帮助大家进一步打破这种神秘感,知其然并知其所以然,了解底层又不拘泥于底层,写起代码来更加得心应手。
留言主题:谈谈你对JVM或GC的理解。
精选留言中随机抽取1位读者, 赠送1本《深入Java虚拟机:JVM G1GC的算法与实现》纸质书。
日系技术书特有小福利又来啦!
符合留言主题,且答出专栏小漫画中两句台词是什么梗 (出自什么作品、什么角色) 的读者, 随机抽取1位, 赠送1本《深入Java虚拟机:JVM G1GC的算法与实现》纸质书。
统计截止时间:1 月 17日 21:00。