参考资料:

  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学习笔记(一)的更多相关文章

  1. IL 学习笔记

    先上几篇博客链接: 一步步教你读懂NET中IL(图文详解) C#基础之IL 详解.NET IL代码 C# IL DASM 使用 你必须知道的.NET <C# to IL>.<Expe ...

  2. [读书笔记]C#学习笔记一: .Net Framwork

    前言: 一次偶然的机会  在园子里看到@Learning hard 出版的一本书: <<C#学习笔记>>, 然后买来 一直到现在读完, 感觉很不错, 适合入门, 书中内容是从C ...

  3. Extjs 学习笔记1

    学习笔记 目   录 1 ExtJs 4 1.1 常见错误处理 4 1.1.1 多个js文件中有相同的控件,切换时无法正常显示 4 1.1.2 Store的使用方法 4 1.1.3 gridPanel ...

  4. Android学习笔记(十二)——实战:制作一个聊天界面

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 运用简单的布局知识,我们可以来尝试制作一个聊天界面. 一.制作 Nine-Patch 图片 : Nine-Pa ...

  5. [读书笔记]C#学习笔记三: C#类型详解..

    前言 这次分享的主要内容有五个, 分别是值类型和引用类型, 装箱与拆箱,常量与变量,运算符重载,static字段和static构造函数. 后期的分享会针对于C#2.0 3.0 4.0 等新特性进行. ...

  6. C#学习笔记二: C#类型详解

    前言 这次分享的主要内容有五个, 分别是值类型和引用类型, 装箱与拆箱,常量与变量,运算符重载,static字段和static构造函数. 后期的分享会针对于C#2.0 3.0 4.0 等新特性进行. ...

  7. C#学习笔记——面向对象、面向组件以及类型基础

    C#学习笔记——面向对象.面向组件以及类型基础 目录 一 面向对象与面向组件 二 基元类型与 new 操作 三 值类型与引用类型 四 类型转换 五 相等性与同一性 六 对象哈希码 一 面向对象与面向组 ...

  8. SQL学习笔记

    SQL(Structured Query Language)学习笔记 [TOC] Terminal登录数据库 1.登录mysql -u root -p ; 2.显示所有数据库show database ...

  9. VSTO学习笔记(一)VSTO概述

    原文:VSTO学习笔记(一)VSTO概述 接触VSTO纯属偶然,前段时间因为忙于一个项目,在客户端Excel中制作一个插件,从远程服务器端(SharePoint Excel Services)上下载E ...

随机推荐

  1. ThinkPHP 3.2.3 简单后台模块开发(一)常用配置

    一.项目分组 下载解压 ThinkPHP 3.2.3,在默认的应用 Application(./Application) 中,包含一个默认的模块 Home(./Application/Home). 需 ...

  2. ios-改变button四个角的弧度

    -(void)createTitleView{ UIView * backview = [[UIView alloc]init]; backview.frame =CGRectMake(87*kHei ...

  3. java向压缩文件添加文件

    package org.alfresco.repo.bom.util; import java.io.File; import java.io.FileInputStream; import java ...

  4. 使用safe-rm替代rm

    safe-rm主页: https://launchpad.net/safe-rm 一.下载safe-rm 二.解压文件,拷贝safe-rm到/usr/local/bin/目录下 三.建立软连接: #l ...

  5. python简单爬虫示例

    #coding=utf-8   import urllib import re   def downloadPage(url):     h = urllib.urlopen(url)     ret ...

  6. Elasticsearch基本操作

    ElasticSearch操作说明   活动 方法 url Body 集群的相关操作 查看健康 Get http://localhost:9200/_cluster/health 查看节点 Get h ...

  7. HttpURLConnection请求

    方法调用: //测试 public static void main(String[] args) { Map map = new HashMap(); map.put("type" ...

  8. 白话学习MVC(七)Action的执行一

    一.概述 在此系列开篇的时候介绍了MVC的生命周期 , 对于请求的处理,都是将相应的类的方法注册到HttpApplication事件中,通过事件的依次执行从而完成对请求的处理.对于MVC来说,请求是先 ...

  9. AngularJS Best Practices: Directory Structure

    app/----- common/ // Acts as reusable components for your app---------- header/--------------- contr ...

  10. input上传按钮 文字修改办法

    解决思路是把input 放在文字的上边,弄成透明的,这样在点文字时,实际是点击了input,这样就实现了文件的上传. 具体代码: <style> #uploadImg{ font-size ...