C#和CLR

CLR中的JIT编译器

将C#编译成中间语言,由CLR执行,而CLR并非像JavaScript那样的解释执行的,首次运行程序的时候CLR调用JIT编译器将中间语言代码编译为机器码,这样的好处是,相比于基于通用优化法则的编译器,实时编译能够实现更加细粒度的优化,提供基于当前宿主的机器的优化,并且托管代码相比于机器码往往占用空间更少,代码更加优化。虽然JIT编译阶段增加了复杂度,使得初次运行的时候效率下降,但是JIT编译器的实时编译只是在运行初期进行编译,之后程序会运行之前编译的版本。

程序集和程序加载器

程序集是CLR中可重用代码的离散单元,类似于DLL。程序集可通过清单将多个模块连接起来,并且各个模块具有自描述性。为了实现跨语言的操作,CLI定义了CTS的子集,CLS(Common Language Specification)通用语言规范,如果程序中用到了CLS兼容类型,CLI可以确保任何托管语言都能使用该程序集。

全局程序集缓冲

GAC(Global Assembly Cache),在GAC注册过的程序集可以提供给系统中所有的应用程序使用。这个是本机上的地址C:\Windows\assembly

元数据

元数据是一个描述程序集内容的可扩展格式。http://www.ruanyifeng.com/blog/2007/03/metadata.html这里写的比较好,不管你懂不懂,反正我是懂了。

C#4.0捷径教程笔记(2)相关推荐

  1. C#4.0捷径教程笔记(1)

    C#预览 1.C#和C++的差异 C#编译成托管代码,托管代码介于高级语言和低级语言之间,运行的时候通过JIT(Just In Time)来动态编译托管代码,而C++直接编译成机器码,即本地代码. 2 ...

  2. C#4.0捷径教程笔记(3)

    C#语法描述 C#的语法基本上和C++.Java一致 C#中每一个实体都是类,所以有了这样古怪的表述. using System; using System.Collections.Generic; ...

  3. C# 4.0捷径教程(奋斗的小鸟)_PDF 电子书

     下载地址:http://pan.baidu.com/share/link?shareid=3180155366&uk=721744522 QQ:2864670220 内容简介 <C#  ...

  4. c#4.0捷径教程委托、匿名方法和事件笔记

    从代码层面上来说是,事件触发了回调,在CLR中委托是目前实现回调的首选的方法,把委托理解成一个指向函数的指针是有帮助的.这个函数可以是静态的也可以实例的,委托实际上和thunk一样的,唯 一不同的在c ...

  5. 《C++捷径教程》读书笔记--Chapter 16--模板(完结)

    //--<C++捷径教程>读书笔记--Chapter 16--模板(完结) //--Chapter 16--模板 //--04/16/2006 Sun. //--Computer Lab ...

  6. 《C++捷径教程》读书笔记--Chapter 14--继承(完结)

    //--<C++捷径教程>读书笔记--Chapter 14--继承(完结) //--Chapter 14--继承 //--04/14/2006 Friday //--Computer La ...

  7. 《C++捷径教程》读书笔记--Chapter 10--结构与联合

    //--<C++捷径教程>读书笔记--Chapter 10--结构与联合 //--Chapter 10--结构与联合 //--11/24/2005 Thurs. //--Computer ...

  8. [Vue]学习笔记目录 【Vue2与Vue3完结】 (尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通)

    文章目录 前言 遇见的问题及其解决方案 之前笔记 Vue2 Vue3 前言 本笔记根据如下笔记和视频进行整理 老师的课件笔记,不含视频 https://www.aliyundrive.com/s/B8 ...

  9. 尚硅谷Vue2.0+Vue3.0全套教程视频笔记 + 代码 [P001-050]

    视频链接:尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通_哔哩哔哩_bilibili P1-50:当前页面.  P51-100:尚硅谷Vue2.0+Vue3.0全套教程视频笔记 + ...

最新文章

  1. 维基链锚定行业缺口,定位发展一体化DeFi,持续开发出各类产品应用,包括去中心化抵押借贷系统Wayki-CDP(含稳定币WUSD)、去中心化交易所Wayki-DEX、去中心化合成资产协议Wayki-X
  2. 【转】Unity Animator卡顿研究
  3. DynaSLAM跑通的辛酸之路
  4. Java常用API(五)Math 数学类
  5. c语言阶乘分解成素因子,阶乘的素因子分解 51nod 1189
  6. run gender find mistake
  7. “ +”(加号)CSS选择器是什么意思?
  8. SharePoint2010 空白站点集无法找到术语管理库
  9. 尚硅谷大数据技术之 Flink-CDC(转)
  10. 一位原码的乘法规则_原码一位乘法的实现算法
  11. myline java线段类,2008010 编写一个线段类 MyLine 联合开发网 - pudn.com
  12. 【华为OD机试Python实现】HJ70 矩阵乘法计算量估算(中等)
  13. Centos调整分区存储大小
  14. 我用unity开发的第一款游戏demo心得
  15. 微信文件撤回时间多长_微信中文件撤回时间延长至多久?
  16. mysql 云端连接_云服务器远程连接mysql数据库
  17. 什么是着色器/Threejs如何使用着色器/Threejs使用着色器实现平面网格的动态效果案例
  18. 完整的SEO团队应该包括哪些人员(细分八要职)
  19. 使用python异步框架aiohttp从NASA抓取火星图片
  20. 带你了解什么是MySQL数据库(六)索引原理,如何建立与使用索引

热门文章

  1. tsz_module公共Npm包
  2. Proteus 实现一百分钟倒计时计数器
  3. Java单例模式的5种实现方法
  4. 我这里有漂亮的繁体字,非主流图片
  5. 区块链重要基础知识6——匿名性以及如何去中心化
  6. 51CTO移动客户端可以在线下载安装啦 - 51CTO博客开发 - 51CTO技术博客
  7. CAN转光纤、光纤转换器的功能与特点
  8. aix下光纤卡与网卡连接状态查看及网络参数修改
  9. PCI网卡上扩展ROM编程 8.附件
  10. 别人淘金,我在拉表!(1)