.Net编译运行原理

.Net Framework:

它是框架库和运行时的集合

( FCL, Framework Class Library )

( CLR, Common Language Runtime )

不严格说它还包含编译器

C#程序运行原理图:

1. .cs文件交给csc编译器进行编译,在编译过程中从基础类库(BCL\FCL)加载相应资源,编译生成IL代码。

2. 在执行程序时,IL代码放入运行时(CLR)中通过JIT进行编译,最后编译生成机器码。

CLR:

CLR包含:内存管理、异常处理、垃圾收集、反射服务、JIT、类加载器、安全等

JIT: 可以提高程序的效率

GC: 保证程序的稳定

时间: 2025-01-10 21:02:14

.Net编译运行原理的相关文章

Android开发学习笔记(二)——编译和运行原理(1)

http://www.cnblogs.com/Pickuper/archive/2011/06/14/2078969.html 接着上一篇的内容,继续从全局了解Android.在清楚了Android的平台架构(可以看作是静态原理)后,还需要掌握其动态原理.动态原理包含两部分,一部分是编译原理,另一部分是运行原理.有人会说,搭建一个基于Eclipse的Android开发环境,编译和运行只要点击按钮即可完成.但是,如果只是“知其然而不知其所以然”的话,在后面的开发中一旦遇到奇怪的问题后可能就束手无措

C#编译和运行原理

关于编译与内存的关系,以及执行时内存的划分 1.所谓在编译期间分配空间指的是静态分配空间(相对于用new动态申请空间),如全局变量或静态变量(包括一些复杂类型的 常量),它们所需要的空间大小可以明确计算出来,并且不会再改变,因此它们可以直接存放在可执行文件的特定的节里(而且 包含初始化的值),程序运行时也是直接将这个节加载到特定的段中,不必在程序运行期间用额外的代码来产生这些变量. 其实在运行期间再看"变量"这个概念就不再具备编译期间那么多的属性了(诸如名称,类型,作用域,生存期等等)

黑马公开课——运行原理与GC学习笔记

.NET Framework 程序的运行原理 .NET Framework的组成:(1)基础类库(BCL):使用线程的类来完成编程,对于不存在的类,就自己编写:(2)编译工具:将源文件,编译成"程序集"(exe或dll等)[.NET环境中,MSIL=CIL=IL](3)公共语言运行时(CLR):执行前检测.编译:执行到了某个方法时才编译这个方法的代码[即时编译器(JIT)]编译过程:.NET源代码(C#)-->通过C#编译器编译成程序集[程序集中包括:元数据(一个表,显示了程序中

[二]java运行原理

public class HelloWorld{ public static void main(String args[]){ System.out.println("hello"); } } 运行原理: .java 编译(javac) .class 运行(java) 得出结果

Maven内部运行原理

原作者zlwen 原文链接 内部运行原理(二) maven至今还是Java编程语言构建的事实标准,大部分项目还在使用maven来进行构建,因此了解maven内部运行的原理对定位和分析问题还是很有裨益的.本篇文章主要介绍一些maven内部运行过程中的一些基本概念,相信看完后,对那么些刚刚接触maven的读者来说maven将不再陌生.??在具体分析项目构建的过程前,需要了解maven的一些基本概念,这些概念十分重要,请务必理解清楚后再看下文.基本概念主要有:POM,Lifecycle.这两个概念又会

JavaScript运行原理解析

写在前面的话: 发现使用了那么长时间的Javascript,但是对其运行原理还是不清晰,今天特意总结一下,把大神们的理论和自己的总结都记录到下面: 1. 什么是JavaScript解析引擎? 简单地说,JavaScript解析引擎就是能够"读懂"JavaScript代码,并准确地给出代码运行结果的一段程序.比方说,当你写了 var a = 1 + 1; 这样一段代码,JavaScript引擎做的事情就是看懂(解析)你这段代码,并且将a的值变为2. 学过编译原理的人都知道,对于静态语言来

常见的几种语言C,C#,JAVA,Python的运行原理

相对于常见的几种语言C,C#,JAVA,Python的运行原理 由于CPU只能识别机器码,即我们常说的二进制码01010101 有任何语言在计算机上运行最终都要转化成CPU能够识别的机器码010101 对于C语言:通过C语言代码编译器将C语言写出的代码进行编译得到机器码,然后机器码就可以交给CPU去识别,即运行 对于其他语言:代码编译器将代码编译成字节码,然后通过各自的虚拟机将字节码进一步处理(转换)成机器码(0101010101),然后在处理器上运行 Python和C 首先Python是用C开

ASP.NET的运行原理与运行机制 -转

转自:原文  http://www.cnblogs.com/sntetwt/archive/2011/03/11/1980500.html 当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的页面类型为其加载相应的.dll文件,然后在处理过程中将这条请求发送给能够处理这个请求的模块.在ASP.NET 3.5中,这个模块叫做HttpHandler(HTTP处理程序组件),之所以.aspx文件可以被服务器处理,就是因为在服务器端有默认的HttpHandler专门处理.aspx文

Silverlight运行原理

Silverlight运行原理 Silverlight通过什么方式和服务器端的托管代码进行交互. Silverlight也许是把托管dll下载到本地执行. 用工具跟踪http请求后,果然如此. 1. IE加载页面后.IE缓存中加载了 HTML页面.Silverlight.JS.XAP应用程序包. clip_image002[7] 2.FF调试网络通信发现.先加载HTML页面-- Silverlight.JS---得到一个LInkID--- XAP应用程序包—安装Silverlight的图片 cl