码迷,mamicode.com
首页 > 其他好文 > 详细

CLR执行模型

时间:2014-06-15 00:07:54      阅读:289      评论:0      收藏:0      [点我收藏+]

标签:style   code   com   文件   数据      

  • 经过编译后,程序变为托管模块(=IL+元数据(描述数据信息)).
    • 托管模块需要CLR才能运行.
  • 然后,将若干个托管模块合并成Assembly.
    • 若干个文件/资源的逻辑分组.
    • 最小的可重用控制单元.
    • 其含有清单来描述其含有的文件集.所以具有自描述性.
  • 加载CLR:\System32下有MSCoreEE.dll说明已经安装.
  • 首次执行一方法:在执行Main之前,CLR创建一个内部DS来保存Code所引用的Type.调用方法时JIT ComplierIL编译为本地指令(AM的元数据中收索方法IL,验证,变为本地CPU指令).并保存于动态内存中,DS的引用换为内存块(方法的实现的地址),第二次,直接执行内存中的Code.再次执行,或一次创建两个APP实例,会再次JIT Complier.
  • CLR直接与Assembly交互.先加载含清单的元数据文件之后,再利用清单加载Assembly中的其他文件.
  • 清单的元数据:

    • 定义表:ModuleDef,TypeDef,MethodDef,FieldDef,ParamDef,EventDef

    • 引用表:AssemblyRef,ModuleRef,TypeRef,MemberRef.

    • 清单表:AssemblyDef,FileDef,ManifestResourceDef,ExportedTypesDef.

  • Assembly
    • 两种部署模式
      • 私有部署.部署到程序集目录或其一个子目录中.
      • 全局部署.部署到一些已知位置上.
    • 当Assembly需要被各个APP之间共享时,放在GAC(WinRoot\Assembly).但是弱命名Assembly不可以.
      • 安装Framework时,会安装同一程序集的两个副本./CLR目录(便于生成AM);GAC(便于运行时加载).

CLR执行模型,布布扣,bubuko.com

CLR执行模型

标签:style   code   com   文件   数据      

原文地址:http://www.cnblogs.com/robyn/p/3786079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!