我该如何试验垃圾收集?

时间:2008-10-29 19:39:58

标签: c++ c garbage-collection

我对垃圾收集的工作原理感兴趣。我已经阅读了一些工作,如标记和扫描,停止复制,分代GC等...我想尝试实现其中的一些并比较它们的行为。什么是开始尝试我自己的好方法?理想情况下是C,Java或Python中的东西(虽然最后两个本身是垃圾收集的,所以看起来很难使用它们......)

7 个答案:

答案 0 :(得分:14)

我自己从未玩过它,但总是被提及与C / C ++一起使用的是Hans Boehm's

答案 1 :(得分:2)

.NET运行时和Java运行时现在是开源的,因此如果您想使用当前的支持编程语言,可以自行试验运行时。但是,如果你想自己做这个,你可能需要创建自己的运行时,它有自己的语言。

答案 2 :(得分:1)

答案 3 :(得分:0)

实现自己的JVM。没什么特别的,只是基础知识。有很多程序/编译器/语言可以生成JVM代码,因此您可以使用大量材料进行测试。

答案 4 :(得分:0)

玩的乐趣,但垃圾收集是一种黑暗的艺术。不要让它工作,而是让它以最新VM的效率工作。

我们正在讨论多阶段和魔术,这使得分配速度与堆栈分配相比可以比malloc更具可比性。

整个伊甸园概念摇滚。

您可能想阅读一些有关所用技术的白皮书。

这篇文章似乎有一个很好的概述(仅限于快速谷歌/扫描)

http://www.devx.com/Java/Article/21977/0/page/1

答案 5 :(得分:0)

发展Slava Pestov

Factor programming language写了一些关于他实现垃圾收集器的帖子。您可以通过以下链接找到帖子:

http://factor-language.blogspot.com/search?q=garbage+collection

特别是从2006年9月24日星期日的帖子开始。

答案 6 :(得分:0)

MMTk包含大量高性能垃圾收集器。它包括:

  • 复制收藏家
  • 追踪收藏家
  • 参考计数收集者

它还有:

  • 阻止世界收藏家
  • 并发收藏家

由于它是一个研究平台,它有一些先进的收藏家,如generation reference counting collector

相关问题