.NET Framework_运行原理
1.程序运行所需属性
-
C#/F#
:**.NET Framework
**里的一种高级语言。 -
编译器(Visual Studio)
:Visual Studio
是.Net
开发,常用的工具并且自带编译器,代码编写完成后,可以进行编译。 -
.dll/.exe
:使用编译器,编译后的文件,里面包含了IL(中间语言)与Metadata(元数据)
。 -
**
CLR(Common Language Runtime,公共语言运行时)
**CLR是.NET框架的核心组件,它提供了一个运行时环境,为多种编程语言提供了统一的执行环境。 -
JIT(Just-In-Time Compiler,即时编译器)
:JIT
是集成在CLR
核心组件里的一个即时编译器,CLR
提供了一个统一的运行时环境,而JIT编译器则负责在这个环境中将IL代码转换为机器代码以执行。 -
JIT优点
:- 平台无关性:由于IL代码是跨平台的,因此通过JIT编译器可以在不同的操作系统和处理器架构上生成相应的本地代码。
- 性能优化:JIT编译器可以根据运行时环境和数据的特点进行代码优化,生成更高效的机器代码。
- 延迟编译:只有在实际需要执行某段代码时,JIT编译器才会将其编译成机器代码。这可以减少应用程序启动时的加载时间,并允许更灵活地处理代码更新和动态加载。
-
机器码
:根据电脑不同系统,JIT(即时编译器)
将IL(中间语言)
编译成电脑可识别的机器码。
2.程序运行过程
-
程序运行到不同操作系统的过程:
代码完成后,使用编译器生成
.dll/.exe
文件,服务器上安装**CLR(Common Language Runtime,公共语言运行时)
组件,然后CLR(Common Language Runtime,公共语言运行时)
里的JIT(Just-In-Time Compiler,即时编译器)
将IL(中间语言)
根据操作系统进行二次编译,编译成不同的机器码**,最后在不同的服务器上执行。 -
二次编译的优点:
为了一次编译可以在不同平台使用;加一层中间层,更灵活,也就是.Net实现了跨平台机制。