jII*_*jII 11 c# java compiler-construction
我正在学习通过.NET和JRE框架将源代码转换为机器代码.首先,我做了一些比较两个过程的研究并创建了这个图.我需要一些帮助批评它的正确性,更重要的是添加我错过的任何严肃的事情,以更好地理解编译途径.

Joe*_*oey 13
.NET和Java都编译为字节码,这是一种包含虚拟机指令的中间语言.它不是机器代码,因为它无法直接在物理机器上运行.相反的是(至少今天; Java在这方面有一个更深的历史)是在运行时运行一个即时编译器,它将VM指令转换为本机代码,然后直接运行.与仅解释它相比,这具有重大的性能优势.
他们在这方面有所不同.Su ^ H ^ H Oracle的Java实现使用了解释,测量和JIT的巧妙组合,只编译了大量使用和解释的部分.这是为了减少JIT编译器的初始影响(否则需要预先运行,延长流程启动时间),同时仍然可以在需要时提供良好的性能.另一方面,.NET总是JIT编译所有使用的代码(虽然未编译未使用的代码).
至于你在评论中提到一个问题:是的,CLR和JVM 是这样的程序运行的平台.虚拟机也是一台机器,硬件更少.它们都与相应的框架,.NET的基类库和Java的Java类库紧密集成.这些是框架.
| 归档时间: |
|
| 查看次数: |
4618 次 |
| 最近记录: |