2011-03-08 51 views
0

昨天我刚刚听到关于java中垃圾回收的讲座。你管上的"Basics of Garbage Collection",所以我试图实现我自己的垃圾收集算法。所以我只是想让任何人实现它。是否有办法做到这一点?如果是的话,请你帮我解决。 谢谢 -Sagar S.在Java中实现Explecit垃圾回收算法

+0

嘿,人们......如果你投票结束,请在这里添加至少一条评论,为什么它不对。 – 2011-03-08 17:41:52

回答

1

为了实现您自己的垃圾收集,您还必须实现一个完整的Java虚拟机,因为它们彼此交织在一起。

  • 对于垃圾收集器有任何事情要做,它需要一些Java对象。
  • 为了使Java对象有用(并且能够分配它们),您需要执行Java代码。

所以,如果你想实现这个在Java中,你就必须创建一个基于Java的Java虚拟机。

好运:-)


如果你只想为现有VM垃圾收集器,看看开源的像OpenJDK的,GJC,Apache的和谐。我认为它们已经足够模块化,所以你可以在那里插入另一个GC实现 - 你仍然必须确保它适合内存分配算法,以及访问对象的所有内容。你将不得不像虚拟机本身一样使用相同的语言,我想(主要是C或C++)。

+0

你完全不需要完整的JVM,逻辑如何收集垃圾,复制,标记/扫描,不需要任何特殊对象,仅供参考就足够了。实际上有时我想知道为什么热点优化不是用java编写的。垃圾收集不能单独用java编写,但(无指针位游戏) – bestsss 2011-03-08 17:43:05