垃圾收集实施

Sur*_*h S 6 java garbage-collection jvm

在java.i中使用哪种语言垃圾收集算法思考c,请确认?

Jör*_*tag 8

这取决于JVM.通常,垃圾收集器使用与JVM相同的语言实现,但情况并非总是如此.

在Maxine中,JVM和垃圾收集器都是用Java实现的.

在Jikes中,JVM和垃圾收集器都是用Java实现的.

在RAVA的JVM是用Ruby实现,垃圾收集器没有实现在所有:红宝石已经是一个内存管理的语言,也没有必要实现单独的垃圾收集器.

在IKVM中,JVM在C#和CIL实施,垃圾收集器没有实现在所有:在CLI VES已经是一个内存管理的环境,没有必要实施单独的垃圾收集器.

在VisualAge for Java中,Java字节码被转换为Smalltalk字节码,然后由Smalltalk环境执行.Smalltalk已经是一种内存管理语言,不需要实现单独的垃圾收集器.

在VMKit中,VM和垃圾收集器都是用C++编写的.

在HotSpot中,JVM和所有4个(或者当前有许多)垃圾收集器都是用C++编写的.


pol*_*nts 7

JVM可以用任何语言实现,但Sun的HotSpot是用C/C++和汇编语言编写的.

也可以看看

  • 有关HotspotTM JavaTM虚拟机中垃圾收集的常见问题
  • OpenJDK/HotSpot Group

    到目前为止,10年来,HotSpot代码库已经被数十人所使用.(这是好事和坏事.)这很重要.有近1500个C/C++头文件和源文件,包含近250,000行代码.除了预期的类加载器,字节码解释器和支持运行时例程之外,您还可以获得两个运行时编译器,从字节码到本机指令,3个(左右)垃圾收集器,以及一组用于同步的高性能运行时库等.


Boz*_*sov 3

AFAIK Sun JVM 主要是用 C++ 和汇编程序实现的,所以我猜测 GC 是用 C++ 实现的。