了解Firefox 32垃圾回收



我已经下载了Firefox 32的源代码。我在这里读到了关于代际垃圾收集的文章[1][2]。我还浏览了js/src/jsgc.h、js/src/jsgc.cpp、js/src/gc/zone.h、js/src/gc/heap.h、js/src/gc/marking.h等文件。但我找不到生成gc算法究竟是在哪个文件中实现的。在某些地方,我发现GC代码是为增量GC编写的,在某些地方我发现生成GC使用ifdef JSGC_Generational。他们在哪个文件中有"次要"one_answers"主要"集合的代码?即使是快速浏览也会有很大帮助。提前谢谢。

[1]https://blog.mozilla.org/javascript/2013/07/18/clawing-our-way-back-to-precision/[2]https://developer.mozilla.org/enUS/docs/Mozilla/Projects/SpiderMonkey/Internals/Garbage_collection

应该在bug 619558中跟踪实现细节,您可以在这里看到bug树