前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#托管代码和非托管代码

C#托管代码和非托管代码

作者头像
kiki.
发布2022-09-29 08:19:51
3.5K0
发布2022-09-29 08:19:51
举报
文章被收录于专栏:web全栈之路

含义

托管/非托管是微软的.net framework中特有的概念。

非托管代码:也叫本地(native)代码。

托管代码:是由公共语言运行库(CLR)执行的代码,而不是由操作系统直接执行。本地代码经过两次编译,第一次将源代码编译成中间代码(MSIL,MicrosoftIntermediate Language),第二次由.net中的CLR将中间代码编译成机器代码。程序实际上是被“托管”在公共语言运行库中。随着程序集的运行,公共语言运行库会持续地提供各种服 务,例如内存管理、安全管理、线程管理等等。和托管资源/非托管资源不同,不要弄混。

托管代码的优点

1.跨平台。有关内存管理(内存申请,内存释放,垃圾回收之类的)全部都是.net的CLR来管理

2.更加安全,不会出现诸如内存泄露之类的问题

托管代码的缺点

1.对程序的性能也产生一定的影响。CLR首次加载程序集代码时,JIT将IL编译成本地代码时,会对其进行代码优化,这类似与非托管C++编译器的后端所做的事情.这可能也会花费加多的时间生成优化代码。

2.不能直接读取内存,不够灵活

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 含义
  • 托管代码的优点
  • 托管代码的缺点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档