.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 ...
随机推荐
- ThinkPHP 3.2.3 简单后台模块开发(一)常用配置
一.项目分组 下载解压 ThinkPHP 3.2.3,在默认的应用 Application(./Application) 中,包含一个默认的模块 Home(./Application/Home). 需 ...
- ios-改变button四个角的弧度
-(void)createTitleView{ UIView * backview = [[UIView alloc]init]; backview.frame =CGRectMake(87*kHei ...
- java向压缩文件添加文件
package org.alfresco.repo.bom.util; import java.io.File; import java.io.FileInputStream; import java ...
- 使用safe-rm替代rm
safe-rm主页: https://launchpad.net/safe-rm 一.下载safe-rm 二.解压文件,拷贝safe-rm到/usr/local/bin/目录下 三.建立软连接: #l ...
- python简单爬虫示例
#coding=utf-8 import urllib import re def downloadPage(url): h = urllib.urlopen(url) ret ...
- Elasticsearch基本操作
ElasticSearch操作说明 活动 方法 url Body 集群的相关操作 查看健康 Get http://localhost:9200/_cluster/health 查看节点 Get h ...
- HttpURLConnection请求
方法调用: //测试 public static void main(String[] args) { Map map = new HashMap(); map.put("type" ...
- 白话学习MVC(七)Action的执行一
一.概述 在此系列开篇的时候介绍了MVC的生命周期 , 对于请求的处理,都是将相应的类的方法注册到HttpApplication事件中,通过事件的依次执行从而完成对请求的处理.对于MVC来说,请求是先 ...
- AngularJS Best Practices: Directory Structure
app/----- common/ // Acts as reusable components for your app---------- header/--------------- contr ...
- input上传按钮 文字修改办法
解决思路是把input 放在文字的上边,弄成透明的,这样在点文字时,实际是点击了input,这样就实现了文件的上传. 具体代码: <style> #uploadImg{ font-size ...