参考资料:

  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. jquery send(data) 对data的处理

    // Convert data if not already a string if ( s.data && s.processData && typeof s.dat ...

  2. 【iCore3 双核心板】例程十:RTC实时时钟实验——显示日期和时间

    实验指导书及代码包下载: http://pan.baidu.com/s/1jHuZcnc iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  3. uglifyjs压缩批处理

    uglifyjs. 据说是用来压缩JS文件的,据说还能优化JS,据说是基于node的,还据说比Google Closure Compiler更带感. uglifyjs压缩批处理我们不可能每次都打开cm ...

  4. which go

    http://www.yiibai.com/go/go_environment.html

  5. P1073 最优贸易

    #include <bits/stdc++.h> using namespace std; const int maxn = 100005; int head1[maxn], head2[ ...

  6. mac自定义安装nodejs步骤

    自定义安装的好处是nodejs相关的文件都在同一个文件夹下,且不与其它程序的文件混合在同一文件夹下. 1.下载node并解压缩:https://nodejs.org/dist/,选择tar.gz包下载 ...

  7. 磨刀不误砍柴工,使用visual studio之前应该先了解这些...

    注:以下的快捷键在vs2010中测试无误. 众所周知,vs是一个非常强大的开发平台,但是又有多少小伙伴熟悉以下这些快捷键呢? 当然,不知道这些快捷键与开发并没有直接关系,不过,就我而言,以下这些快捷键 ...

  8. 转载 Servlet3.0中使用注解配置Servle

    转载地址:http://www.108js.com/article/article10/a0021.html?id=1496 开发Servlet3的程序需要一定的环境支持.Servlet3是Java ...

  9. 透过proxy进行docker pull(Centos6.8)

    由于必须通过proxy代理上网. 使用docker pull时一直出现如下错误: [root@centoo65 ~]# sudo HTTP_PROXY=http://186.100.4.107:808 ...

  10. Nhiberate (二) 搭项目

    使用: visual studio 2015 ;SQL SERVER 2012. 参考.测试可用 其中有点不太一样的地儿, ISession 的泛型方法: 用了 QueryOver<>,转 ...