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

C#托管代码和非托管代码含义托管/非托管是微软的.netframework中特有的概念。非托管代码:也叫本地(native)代码。托管代码:是由公共语言运行库(CLR)执行的代码,而不是由操作系统直接执行。本地代码经过两次编译,第一次将源代码编译成中间代码(MSIL,MicrosoftIntermediateLanguage),第二次由.net中的CLR将中间代码编译成机器代码。程序实际上是被“托管”在公…

大家好,欢迎来到IT知识分享网。C#托管代码和非托管代码

含义

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

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

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

托管代码的优点

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

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

托管代码的缺点

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

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12306.html

(0)
上一篇 2024-03-13 13:45
下一篇 2024-03-19 15:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信