.NET IL学习笔记(一)
参考资料:
1. 《.NET IL Assembler》
2. NGEN代码产生器
3. NGEN的使用
4. IL编辑器下载
5. IL编辑器的使用
知识点:
● Common Language Runtime是整个.NET的核心,它是.NET应用程序的运行时环境,提供了.NET应用程序和底层操作系统的操作层。
● Common Language Specifications是保证.NET应用程序之间互操作性的规则的集合。
● .NET应用程序的抽闲中间表示主要包括两部分:元数据metadata和托管代码managed code。元数组是应用程序所有结构化项描述符和描述符之间联系的集合,包括类、类成员、特性、全局项等。托管代码代表了应用程序函数的功能,被一种抽象的二进制形式语言的MSIL(或称CIL)所表示。运行时环境负责管理IL代码。CLR管理主要包括三个部分:类型控制、结构化异常处理和垃圾回收。类型控制会涉及在执行阶段验证和转换item的类型。托管异常处理同非托管结构化异常处理类似,不同之处在于它由运行时完成而不是操作系统。垃圾回收会涉及自动确认和处理不再使用的对象。

图1 托管.NET应用程序的创建和执行
● 图1中空心圆圈箭头代表数据传输,实心圆圈箭头代表请求和控制信息。我们可以使用NGEN应用将IL预编译成本地代码(在可执行程序会从本地磁盘被重复执行的时候,而不是用JIT)。.NET Framework的托管组件会在安装的时候被预编译成标准例程。预编译代码会被保存在本地磁盘或其他设备上,每次调用时会使用预编译的版本代码而不是原始的IL版本。然而,原始代码也必须存在,因为预编译代码在被使用时必须被授权,否则将会使用原始IL版本。
.NET IL学习笔记(一)的更多相关文章
- IL 学习笔记
先上几篇博客链接: 一步步教你读懂NET中IL(图文详解) C#基础之IL 详解.NET IL代码 C# IL DASM 使用 你必须知道的.NET <C# to IL>.<Expe ...
- [读书笔记]C#学习笔记一: .Net Framwork
前言: 一次偶然的机会 在园子里看到@Learning hard 出版的一本书: <<C#学习笔记>>, 然后买来 一直到现在读完, 感觉很不错, 适合入门, 书中内容是从C ...
- Extjs 学习笔记1
学习笔记 目 录 1 ExtJs 4 1.1 常见错误处理 4 1.1.1 多个js文件中有相同的控件,切换时无法正常显示 4 1.1.2 Store的使用方法 4 1.1.3 gridPanel ...
- Android学习笔记(十二)——实战:制作一个聊天界面
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 运用简单的布局知识,我们可以来尝试制作一个聊天界面. 一.制作 Nine-Patch 图片 : Nine-Pa ...
- [读书笔记]C#学习笔记三: C#类型详解..
前言 这次分享的主要内容有五个, 分别是值类型和引用类型, 装箱与拆箱,常量与变量,运算符重载,static字段和static构造函数. 后期的分享会针对于C#2.0 3.0 4.0 等新特性进行. ...
- C#学习笔记二: C#类型详解
前言 这次分享的主要内容有五个, 分别是值类型和引用类型, 装箱与拆箱,常量与变量,运算符重载,static字段和static构造函数. 后期的分享会针对于C#2.0 3.0 4.0 等新特性进行. ...
- C#学习笔记——面向对象、面向组件以及类型基础
C#学习笔记——面向对象.面向组件以及类型基础 目录 一 面向对象与面向组件 二 基元类型与 new 操作 三 值类型与引用类型 四 类型转换 五 相等性与同一性 六 对象哈希码 一 面向对象与面向组 ...
- SQL学习笔记
SQL(Structured Query Language)学习笔记 [TOC] Terminal登录数据库 1.登录mysql -u root -p ; 2.显示所有数据库show database ...
- VSTO学习笔记(一)VSTO概述
原文:VSTO学习笔记(一)VSTO概述 接触VSTO纯属偶然,前段时间因为忙于一个项目,在客户端Excel中制作一个插件,从远程服务器端(SharePoint Excel Services)上下载E ...
随机推荐
- request实现页面包含
package cn.itcast.request; import java.io.IOException; import javax.servlet.ServletException; import ...
- Python脚本模拟登录网页之CSDN篇
1. 通过Firefox配合插件Tamper Date获取登录时客户端向服务器端提交的数据, 并且发现lt和execution这两个字段每次登录时都不一样. POSTDATA=username=you ...
- Ajax 无刷新上传文件插件 uploadify 的使用
在表单中无法直接使用 Ajax 上传文件,解决的思路可以是使用插件无刷新地上传文件,返回文件上传后的地址,然后把该地址作为 Ajax 的参数传递给服务器端进行数据库处理.可以使用 uploadify ...
- 怎样成为全栈工程师(Full Stack Developer)?
"Facebook 工程师说 Facebook 只招 full stack engineer,那么 Facebook engineer 都是怎样的人啦."? 具体经验不重要,重要的 ...
- css页面布局基础
1.盒模型属性包括boder.margin.padding.width.height,这些属性可以使用快捷方式表示,顺序为上右下左,值之间用空格隔开. 2.使用clip和overflow属性时,pos ...
- Linux内核设计第四周——扒开系统调用三层皮
Linux内核设计第四周 ——扒开系统调用三层皮 一.知识点总结 (一).系统调用基础知识 1.用户态和内核态 内核态:在高级别的状态下,代码可以执行特权指令,访问任意的物理地址: 用户态:在相应的低 ...
- cookie的作用
Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术.Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以 ...
- 针对ajax执行后swiper特效无法执行解决方案
ajax执行后重新绑定swiper事件.
- MacOS10.11的/usr/bin目录不可写后class-dump的处理办法
许多升级了OSX 10.11的朋友在配置class-dump的时候,会发现书上推荐的class-dump存放目录/usr/bin不再可写,如下所示: 192:~ snakeninny$ touch c ...
- ios 实现版本更新检查
注:这里网络请求用的是第三方框架:SVHTTPRequest /* 第一步: 根据应用名称搜索应用,然后根据应用绑定的ID在结果中筛选出我们要找的应用,并取出应用的AppID */ - (void)g ...