简要说一下.Net的编译过程.
2024-09-01 22:09:32
看面试题的时候遇到这样一道题目,简要说明.NET的编译过程,在网上看了很多资料,简单总结如下:
1、一般的编译过程
通常高级语言的程序编译过程是:首先写好的程序是源代码,然后编译器编译为本地机器语言,最后在本地操作系统运行。
2、.NET程序的编译与之类似:首先编写好的源代码,然后编译为微软中间语言代码,运行的时候即时编译为本地机器语言,同时.NET代码运行时有一个CLR(运行时)环境来管理程序;
总结:
一般的高级程序语言会直接将代码编译成知为机器语言(二进制语言),之后由本地机执行这些机器语言从而实现编译过程;
而.NET的编译机制会在中间多一个环节,就是先将高级语言(如C#、VB)编译成中间语言(IL),然后再将中间语言(IL)通过CLR(公共语言运行时)转换为机器语言,之后由本地机执行这些机器语言从而实现编译过程;
最终的二进制代码(机器语言)被存储在一个缓冲区中。所以一旦程序使用了相同的代码,那么将会调用缓冲区中的版本。这样的话,如果一个.Net程序第二次被运行,那么就不需要进行第二次编译,速度明显加快。
最新文章
- SpringBoot-Learning
- Java学习笔记五——流程控制
- 将公网IP自动发到Twitter上
- hihoCoder-1036 (AC自动机模板题)
- 一步步学敏捷开发:5. Scrum的4种会议
- POJ 1837 Balance
- Winform中如何实现父窗体传递数据到子窗体并刷新子窗体
- C盘空间不足
- PHP+MYSQL 出现乱码的解决方法
- PowerDesigner实用技巧小结(4)
- kafka 消息服务
- 在Windows Server 2008 R2下搭建jsp环境(三)-Tomcat的下载安装
- oracle 删除重复记录
- CentOS7 查看显卡信息
- cronolog日志切割catalina.out
- springbank 开发日志 Spring启动过程中对自定义标签的处理
- Android6.0中PowerManagerService分析
- HDU 2176 基础NIM 输出方案
- Boosted Tree
- 记录一次teamview无法远程连接对方teamview的过程
热门文章
- npm publish bug &; solution
- GitHub Secrets All In One
- CSS 弹性盒子模型
- React Hooks: useCallback All In One
- Vue 3 In Action
- how to create one single-file Web Component just using the HTML, CSS, JavaScript
- disable html input &; pointer-events
- ⑧SpringCloud 实战:引入 Actuator监控+整合监控页面
- Java NIO wakeup实现原理
- java荷兰国旗问题