zoukankan      html  css  js  c++  java
  • C#学习系列-.NET体系结构

    原文地址:http://www.cnblogs.com/woxpp/p/3904854.html

    .NET框架概述

    .NET 框架为.NET应用程序运行提供虚拟机环境,为.NET应用程序提供编译、运行、内存管理、垃圾回收、安全等服务。

    .NET框架组成部分

    1.公共语言运行时(Common Language Runtime,CLR)

    2.NET框架类库(并非.NET框架中的所有类库代码都是纯粹的托管代码编写的,.NET框架中有相当数量的类是对Win32 API的封装)

    托管代码

    使用.NET公共语言运行时提供的代码,反之为非托管代码(如 Win32 API)

    通用语言组织框架(CLI Common Language Infrastructure)

    规定如何在运行库中声明、使用和管理类型,同时也是运行库支持跨语言互操作的一个重要组成部分

    1.建立一个支持跨语言集成、类型安全和高性能代码执行的框架

    2.提供一个支持完整实现多种编程语言的面向对象模型

    3.定义各个语言必须遵守的规则,有助于确保用不同语言编写的对象能够交互作用

    公共语言运行时(CLR)

    负责管理.NET应用程序编译、运行、代码类型安全检查、内存分配、线程管理、安全、垃圾回收等服务,为.NET应用程序提供一个虚拟的运行环境

    通用类型系统(CTS Common Type System)

    CTS定义了一个类型库,无论是VB还是C#,他们的数据类型都是一致的,因此.NET将各种不同的编程语言的数据类型进行抽象,就诞生了CTS。

    CTS类型主要分为:值类型和引用类型 http://wenku.baidu.com/link?url=LHBzlpJ8zHnLvsNzcmGxjpGgOolfq721gDvoVTY7gtNHTUbmhf_Zv8z0GliZECRuyg020kqZhZEtWVawStyqJZGxAFoDSMvva411vNACau7

    公共语言规范(CLS Common Language Specification)

    CLS是CTS的子集,目标是让.NET平台上用不同的编程语言编写的对象之间可以互相调用

    CLR、CTS、CLS 三者关系如下:

    值类型:存储在内存的堆栈中,快速访问,超出作用范围自动释放内存,垃圾回收机制不参与回收。

    引用类型:分配在内存中,默认NULL ,在栈中分配内存的地址,操作时通过指针寻找,通过垃圾回收机制回收。将一个引用类型变量的内容赋值给另一个引用类型的变量时,只是变量的内存地址被拷贝。

    装箱:将值类型转换成引用类型 int i=0; object o=i;

    拆箱:将引用类型转换为值类型 int i=0;object o=i;int j=(int)o;

    装箱和拆箱对性能损耗是有影响的。

    即时编译(JIT)

    1. 在编译期:CLR对C#代码进行一次编译,生成中间代码(MSIL 现在称为CIL Common Intermediate Language)DLL或者EXE。
    2. 在运行期,CLR根据硬件环境使用JIT(即时编译引擎),将中间代码编译为二进制代码并执行。
    3. 编译好的二进制代码被存放到一个缓存区缓存,下次调用相同的代码就直接从缓存区中调用,也就是说相同的代码只会编译一次。

    NGEN(本机映像生成器)编译

    本机映像生成器(Ngen.exe)是一个提高托管应用程序性能的工具。Ngen.exe创建本机映像(包含经编译的特定于处理器的机器代码的文件),并将它们安装到本地计算机上的本机映像缓存中。运行库可从缓存中使用本机映像,而不是使用实时编译器编译原始程序集。

  • 相关阅读:
    React生命周期, 兄弟组件之间通信
    React组件式编程Demo-用户的增删改查
    React之this.refs, 实现数据双向绑定
    CCF CSP 201812-4 数据中心
    CCF CSP 201812-4 数据中心
    PAT 顶级 1020 Delete At Most Two Characters (35 分)
    PAT 顶级 1020 Delete At Most Two Characters (35 分)
    Codeforces 1245C Constanze's Machine
    Codeforces 1245C Constanze's Machine
    CCF CSP 201712-4 行车路线
  • 原文地址:https://www.cnblogs.com/Arlar/p/6047900.html
Copyright © 2011-2022 走看看