zoukankan      html  css  js  c++  java
  • 《CLR via C#》读书笔记1 之 CLR的执行模型

    1. 将源代码编译成托管模块

    托管模块是一个标准的32位microsoft windows可移植执行体(PE32)文件或者是一个标准的64位Windows可移植执行体(PE32+)文件,他们都需要CLR才能执行。

    2. 将托管模块合并成程序集

    3. 加载公共语言运行时

    4. 执行程序集的代码

    IL可视为面向对象的机器语言。Microsoft提供了一个名为ILAsm.exe的IL汇编器和一个名为ILDasm.exe的反汇编器。

    IL是基于栈的。意味着它的所有指令都要讲操作数压入(push)一个执行栈,并从栈弹出(pop)结果。

    Microsoft C#编译器默认生成的是安全的(safe)代码,这种代码是否安全是可验证的,然后,也运行开发人员写不安全的(unsafe)代码。不安全的代码可以直接操作内存地址,并可操作这些地址处的字节。使用不安全的代码需要用unsafe关键字标记。除此之外,还要求用/unsafe编译器开关来编译源代码。

    5. 本地代码生成器:NGen.exe

    加快应用程序的启动速度:运行NGen.exe能加快启动速度,因为代码已编译成本地代码,运行时不需要再花时间编译。

    减少应用程序的工作集:NGen.exe会将IL编译成本地代码,将这些代码保存到一个单独的文件中。这个文件可以通过“内存映射”的方式,同时映射到多个进程地址空间中,是带阿玛得到共享,避免每个经常都需要一份单独的代码拷贝。

    NGen生成的文件存在以下问题:没有知识产权保护,生成的文件可能失去同步,较差的执行时性能。

    6.Framework类库

    Web 服务(web service):利用Microsoft的ASP.NET,XML,Web Service技术或者WCF技术,可以非常简单的处理通过Internet发送的消息。

    Web窗体应用程序(Web Form):开发基于HTML的应用程序,可以在ASP.NET Web窗体应用程序中查询数据库和调用WEB服务,合并和筛选返回信息,然后使用一个基于HTML的用户界面,在浏览器中显示那些信息。

    Windows应用程序: 开发windows GUI应用程序。WPF。

    富Internet应用程序:利用silverlight技术,可以构建通过Internet来部署GUI应用程序。

    Windows控制台应用程序,Windows服务,数据库存储过程,组件库。

    7.通用类型系统

    类型包含:字段,方法,属性,事件。访问:private, protected,internal,public.

  • 相关阅读:
    Java线程池
    Servlet实现网页十天免登陆功能
    代码实现QQ消息轰炸
    数组模拟栈数据结构
    约瑟夫问题以及环形链表的解决方案
    ServletConfig中的方法
    Servlet的生命周期
    数组模拟环形队列
    数组模拟队列
    多线程实现奇偶数的依次输出
  • 原文地址:https://www.cnblogs.com/fyhou/p/3823416.html
Copyright © 2011-2022 走看看