[讨论] GC的历史综述与最新进展以及在HotSpot中的具体实现
ZHH2009
2014-08-26
此贴记录与GC(垃圾收集:Garbage Collection)相关的历史综述与最新进展以及在HotSpot中的具体实现。
目前我在HotSpot中研究并发和GC两大模块,会不定期更新此贴的内容。 最近一直在了解HotSpot中有关并发的实现代码,牵扯到GC相关的, 所以想把GC这个领域中的东西都尽可能弄明白。 希望大家能就三个大问题聊一下: 1.GC的过去 : 基本上就是GC的发展史 2.GC的最新进展: 最近5年内出了哪些不错的论文 3.GC在HotSpot中的具体实现 : 这个又是一个大问题 国内能买到的专门讲GC的书似乎没有, 我最近看的书有关GC的多数只占一章的篇幅: 【编译原理 : 原理、技术与工具】http://book.douban.com/subject/3296317/ 第二版的第7章介绍了一些常见的GC算法,并且给出了伪代码实现, 章节后面的参考文献很有考古价值,文献中最新的年份是1992, 这书是在2006年写成的,难道作者认为这14年中GC相关的技术没有可聊的? 【深入理解Java虚拟机】http://book.douban.com/subject/6522893/ 第3章,侧重概念和HotSpot中的一些收集器的简单介绍。 【HotSpot实战】http://book.douban.com/subject/25847620/ 第5章所讲内容与【深入理解Java虚拟机】第3章类似 【虚拟机:系统与进程的通用平台】http://book.douban.com/subject/3611865/ 第6.3节简单介绍了一下收集器 一些网络上的资料: hotspot-gc 邮件组: http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-dev hotspot-gc模块开发者Jon Masamitsu's Weblog https://blogs.oracle.com/jonthecollector/ Garbage collection Wiki: http://en.wikipedia.org/wiki/Garbage_collection_(computer_science) 其他语言中的GC: Ruby 2.0 Bitmap Marking : http://patshaughnessy.net/2012/3/23/why-you-should-be-excited-about-garbage-collection-in-ruby-2-0 在acm中搜索GC相关的学术论文: http://www.acm.org/ 要找到好的GC论文得花不少心思,如果你看到不错的GC论文可以在回复中贴一下URL。 |
|
ZHH2009
2014-08-27
HLLVM群组中已有的一些好贴:
【新生代回收调试的一些心得】 http://hllvm.group.iteye.com/group/topic/35798 【HotSpot VM Serial GC的一个问题】 http://hllvm.group.iteye.com/group/topic/39376 【Shenandoah GC的资料收集和讨论】 http://hllvm.group.iteye.com/group/topic/39407 |
|
ZHH2009
2014-08-27
GC较新的进展(与HotSpot VM的G1相关):
G1的论文: Garbage-first garbage collection, 2004年发表: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.63.6386&rep=rep1&type=pdf . |
|
RednaxelaFX
2014-08-27
GC研究的“最新进展”可能在ACM论文库上搜一下更好。用“GC”或者“garbage collection”关键字搜都行。
要系统介绍GC的现状的还是要靠《The Garbage Collection Handbook》 (抱歉我已经没有在翻译这本书了…) LeafInWind同学在本群组发过一帖讨论Serial Old的实现的: http://hllvm.group.iteye.com/group/topic/39516 我发在豆瓣的JVM书单里有提到一本G1GC的源码剖析书: 《徹底解剖「G1GC」 アルゴリズム編》 http://tatsu-zine.com/books/g1gc,中村成洋 有一篇讲G1 GC的write barrier消除的JIT编译器优化的论文,算是跟GC擦边: Compile-time concurrent marking write barrier removal, David Detlefs, V. Krishna Nandivada, 2005 Red Hat基于OpenJDK研发的Shenandoah GC的资料收集和讨论 http://hllvm.group.iteye.com/group/topic/39407 |
|
ZHH2009
2014-08-27
ACM论文库优点是论文丰富,比如用“garbage collection”关键字搜出来1万多条。
缺点是: 正因为论文丰富,无法从结果中快速判断哪个论文有价值, 如果用Citation Count来排序,发现排在前面的不一定跟GC相关, 所以从中找出最有价值的论文也是个体力活。 还有一个缺点是ACM的论文是要收钱的,会员费用少一点, 非会员下一篇论文将近100RMB,所以更有必要知道论文质量如何。 《The Garbage Collection Handbook》 似乎还没看到有影印版 这书最新版是2011年的,我想后面肯定少不了参考文献, 可以从上面捡一些95年到2011年有价值的GC论文放出来看看, 经过这书的作者引用的至少说明的确有些价值。 PS. @RednaxelaFX 我知道你手上有这书,把书后的参考文献拍几张照晒出来吧, 这应该算不上盗版,也影响不大。 |
|
ZHH2009
2014-08-27
有关GC的发展史:
【Dynamic Storage Allocation: A Survey and Critical Review】 http://www.cs.cmu.edu/afs/cs/academic/class/15213-f98/doc/dsa.pdf 讲述了1961到1995年与动态存储分配(也包括GC)有关的论文 Paul R. Wilson的【Uniprocessor Garbage Collection Techniques】 http://www.cs.cmu.edu/~fp/courses/15411-f08/misc/wilson94-gc.pdf 详细分析了1992年前的GC技术 |
|
ZHH2009
2014-08-27
如何搜索GC相关的学术论文:
搜学术论文CiteSeerX比ACM更好用,而且会在右边提供一些免费的下载地址 http://citeseerx.ist.psu.edu/index 用Advanced Search,然后在Keywords或者Abstract中输入查询关键字, 然后在Sorting Criteria按citations排序通常搜出的论文质量还是挺靠谱的。 |
|
ZHH2009
2014-08-27
GC较新的进展:
IBM出了一个 Staccato: A Parallel and Concurrent Real-time Compacting Garbage Collector for Multiprocessors http://researcher.watson.ibm.com/researcher/files/us-groved/rc24504.pdf 话说已经在IBM J9 VM中实现,论文中声称已支持硬/软实时GC。 PS. 还说比Azul家的好 |
|
ZHH2009
2014-08-28
GC的实现技术大体上分为两派:
1. 引用计数(Reference counting) 2. 跟踪(Tracing) 实际上目前这两种流派都还在发展, 通过引用计数实现GC最早出现在George E. Collins于1960年12月发表的 A Method for Overlapping and Erasure of Lists(这篇论文我没找到免费版) 基于跟踪的GC最早出现在John McCarthy于1960年4月发表的 Recursive Functions of Symbolic Expressions and Their Computation by Machine |
|
LeafInWind
2014-08-29
请问有没有什么介绍CMS原理的论文
|