码迷,mamicode.com
首页 > 其他好文 > 详细

CLR 对比 JVM

时间:2018-05-21 00:06:10      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:垃圾收集器   java虚拟机   源代码   pil   动态   解释执行   王清   动态编译   需要   

首先,CLR和JAVA虚拟机(Java Virtual Machine,简称:JVM)并非一个层面的系统。前者可松散地被描述为just-in-time(JIT)优化编译器和垃圾收集器的混合物,而后者仅仅是一个解释器;

其次,早先的JVM使用的是第一代解释器原理,先将java源代码编译成字节码(bytecode),然后通过JVM对bytecode进行实时解释。它是在程序使用的时间解释执行,每次执行都需要重新解释并执行。而CLR是先通过内置的相应语言的编译器将源代码编译为CIL中间代码,然后在程序第一次执行时通过JIT Compilation将中间代码动态编译为可执行机器码。只要该程序驻留在内存中,就不再需要CLR解释,程序的执行效率跟机器码一样快。

随后,广受诟病旧的JAVA JVM也更新换代,提供了JIT选项,但是某些方面较为保守。



作者:王清
链接:https://www.zhihu.com/question/39400401/answer/189344296
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



CLR 对比 JVM

标签:垃圾收集器   java虚拟机   源代码   pil   动态   解释执行   王清   动态编译   需要   

原文地址:https://www.cnblogs.com/alps/p/9065124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!