gc

Posted by 梁小生 on 2019-04-18

GC垃圾回收

因为最近接触了JAVA和C#相关编程,这里对比一下JVM和CLR的垃圾回收机制。

  1. CLR和JVM之间的最大相似之处包括:
  • 都是虚拟机(VM)

  • 都包括垃圾收集

  • 都采用基于堆栈的操作

  • 都包括运行时级安全性

  • 都有异常处理方法

  1. CLR和JVM之间的主要区别包括:
  • CLR被设计为与语言无关,JVM被设计为特定于Java

  • CLR最初只与Windows兼容,JVM适用于所有主要操作系统

  • CLR使用JIT编译器,JVM使用称为Java HotSpot的专用JIT编译器

  • CLR包含有关闭包,协同程序和指针声明/操作的指令,而JVM则没有

  • JVM兼容更强大的错误解决方案和生产监控工具

  1. 什么是虚拟机?
  • 公共语言运行时(CLR)和Java虚拟机(JVM)都是进程虚拟机。这意味着它们不是执行整个操作系统,而是专门设计用于运行流程或程序而不依赖于平台环境。
  1. CLR与JVM的相似之处
  • CLR和JVM都是虚拟机,它们都执行与平台无关的操作,即执行已编译的源代码。从本质上讲,这些虚拟机既可以作为程序员源代码和系统机器代码之间的中间步骤,也可以通过各种类型的处理器实现更高的可用性。在下图中,您可以看到两者的高级功能实际上是如何相同的。

7层模型

  • 虚拟机的垃圾回收机制很像