zoukankan      html  css  js  c++  java
  • CLR执行模型《CLR via c#》第一章

    这是我看《CLR via c#》第四版的一些小笔记和总结,如有不对的地方,欢迎指出。

    《CLR via c#》第一章CLR的执行模型讲的是如何将源代码生成为一个应用程序,或者生成为一组可重新分发的组件(文件)- 这些组件(文件)包含类型(类和结构等),解释了应用程序如何执行。

    CLR(common language runtime ,公共语言运行时),顾名思义,它是一个可以支持多种语言的“运行时”。

    通常我们c#程序的执行过程是

    CLR的JIT(即时编译器)把IL代码编译成机器指令。

    NGen.exe工具将程序集的IL代码编译成本机代码,并将这些代码保存到一个磁盘中。在运行加载程序集时,CLR自动判断是否存在运行该程序集的预编译版本。使用NGen.exe工具虽然表面性能比较好,但因为它没有像JIT一样优化代码,所以在选择使用时,应该注意。

    CTS(common type system ,通用类型系统)是用来描述类型的定义和行为。CTS是定义类的一种规范,它规定了一个类型可以包含零个或者多个成员,同时还指定了类型可见性规则以及类型成员的访问规则,除此之外,CTS还为类型继承,虚方法,对象生存期等定义了相应的规则。

    面向CLR的语言无论是用哪种“代码的语言”最后的“代码的行为”都是一样的,因为最终都是由CLR的CTS来定义类型的行为。

    CLS(common language specification,公共语言规范)详细定义了一个面向CLR语言的共有的最小功能集(语法规则)。一般来说,你的代码只要符合了CLS就能实现跨语言访问。

  • 相关阅读:
    JVM相关小结
    Tachyon框架的Worker心跳及Master高可用性分析
    Yarn中的几种状态机
    Spark on Yarn遇到的几个问题
    Spark1.0.x入门指南
    Mapreduce执行过程分析(基于Hadoop2.4)——(三)
    Mapreduce执行过程分析(基于Hadoop2.4)——(二)
    Mapreduce执行过程分析(基于Hadoop2.4)——(一)
    使用HttpClient实现文件的上传下载
    Hadoop2.3+Hive0.12集群部署
  • 原文地址:https://www.cnblogs.com/yzw-carrie/p/5626965.html
Copyright © 2011-2022 走看看