原始地址:http://www.cnblogs.com/springcsc/archive/2008/12/25/1362515.html
一般一个可执行文件的内部都包含一个PE头,系统根据PE的信息找到入口函数,在通过执行入口函数中的代码来执行可执行程序。托管程序的文件中相对于非托管程序还包含了一个CLR表头文件以及其他CLR需要的信息。

(1)非托管程序的执行过程
在非托管程序中,可执行里面保存的是机器代码,CPU可以直接加载并执行,当系统加载了可执行程序后,系统就将可执行文件的段基址加上偏移地址形成实际的物理地址,并直接加载到内存中运行。

(2)托管程序的执行过程

托管程序的可执行文件中,包含的是中间语言以及元数据,当然不能直接运行,必须启动CLR,由CLR对中间语言进行即时编译成机器代码,并加载到内存里面执行(具体过程:程序在进入入口函数前会提前跳转到MSCoree.dll中,调用它的代码来启动CLR并完成一些初始化工作)。当然,IL中的方法并不是每次被调用都会被编译一次,而是它只有在第一次调用时才进行编译,即时编译器会将方法名称以及对应的入口地址存放在映射表中,当下次调用该方法时,会直接从映射表里去而不是再编译一次。

托管程序与非托管程序的区别相关推荐

  1. 编写高质量代码改善C#程序的157个建议——建议50:在Dispose模式中应区别对待托管资源和非托管资源...

    建议50:在Dispose模式中应区别对待托管资源和非托管资源 真正资源释放代码的那个虚方法是带一个bool参数的,带这个参数,是因为我们在资源释放时要区别对待托管资源和非托管资源. 提供给调用者调用 ...

  2. 关于Dll、Com组件、托管dll和非托管dll的理解

    Com组件和dll区别: 1.普通dll不能通过regsvr32.exe来注册,而Com组件能通过regsvr32.exe注册. 2.Com组件是微软的一个协议,满足com组件协议的dll文件就是co ...

  3. C#Maeshal类——托管资源和非托管资源转换

    C#--Marshal.StructureToPtr方法简介 http://blog.csdn.net/livelylittlefish/article/details/2423764         ...

  4. 托管资源和非托管资源

    在.net 编程环境中,系统的资源分为托管资源和非托管资源. 对于托管的资源的回收工作,是不需要人工干预回收的,而且你也无法干预他们的回收,所能够做的只是了解.net CLR如何做这些操作.也就是说对 ...

  5. C# 托管资源与非托管资源

    C# 托管资源与非托管资源 在.net 编程环境中,系统的资源分为托管资源和非托管资源. 托管资源: Net平台中,CLR为程序员提供了一种很好的内存管理机制,使得程序员在编写代码时不要显式的去释放自 ...

  6. .NET中的托管资源与非托管资源

    托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内存资源.托管资源的回收工作是不需要人工干预的,有.NET运行库在合适调用垃圾回收器进行回收. 非托管资源指的是.NET不知道如何回 ...

  7. C# 托管资源和非托管资源(Dispose、析构函数)

    https://www.cnblogs.com/herenzhiming/articles/9691524.html 资源分类: 托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内 ...

  8. C# 托管资源和非托管资源

    原文地址:http://blog.csdn.net/zlwzlwzlw/article/details/7918633 托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内存资源.托 ...

  9. crm 系统解决方案_如何将本地CRM组织的托管解决方案转换为非托管解决方案?...

    crm 系统解决方案 Solution is very important part of Dynamics CRM. In order to deploy your customization, s ...

  10. C# 托管内存与非托管内存之间的转换

    C# 托管内存与非托管内存之间的转换 c#有自己的内存回收机制,所以在c#中我们可以只new,不用关心怎样delete,c#使用gc来清理内存,这部分内存就是managed memory,大部分时候我 ...

最新文章

  1. html中井号的作用,html5 css选择器 井号, 句点的区别
  2. ztree和php结合实例,实例详解jQuery EasyUI结合zTree树形结构制作web页面
  3. 配置Log4j(非常具体)
  4. [html] html5都有哪些新的特性?移除了哪些元素?
  5. 笨办法学 Python · 续 练习 19:改善性能
  6. 终于要来了!苹果明年将推出11英寸版mini-LED屏iPad Pro
  7. hexo 菜单_hexo+yilia搭建博客的坎坷历程
  8. screen投屏怎么用_Screen投屏
  9. esxi7.0虚拟机安装群辉DS3615-6.2.2版本
  10. 阿里王坚:区块链与数据价值的交换
  11. 项目风险管理之风险分析
  12. 视图:定义视图 (建立视图、删除视图格式、查询视图、更新视图、视图的作用)
  13. 【认证】JNCIE-SP备战心得
  14. 10种舒服的颜色及配色推荐
  15. Python自动化测试常用库整理
  16. 什么是i人,mbti中的i型人格是怎么样的
  17. 如何在A4纸上打印连续的条形码
  18. 整理任正非思想:要建立一个均衡的平台-1995
  19. matlab狐狸与野兔数学模型,狐狸与兔子数学模型的论文
  20. 数值计算方法之1——三种迭代公式对比

热门文章

  1. Windows 进程 tasklist查看 与 taskkill结束
  2. 扒一扒磁条导航和Slam导航的AGV交管思路
  3. 微信小程序报错module “wxParse/wxParse.js“ is not defined
  4. 取消edge浏览器打开时默认的360导航窗口
  5. 中国CRO市场复合增速超20%高于全球平均水平
  6. Event Detection with Trigger-Aware Lattice Neural Network(论文解读)
  7. 超低功耗Lattice SensAI引领网络边缘人工智能设备迈向大众市场
  8. 音视频ffmpeg——ffmpeg 命令大全
  9. we learn考试能切屏吗_托福说 | 当留学生必备技能成托福口语真题,这题你能拿满分吗?!...
  10. [简单逻辑学]逻辑学的基本原理——条件论证