C#托管代码和非托管代码
含义
托管/非托管是微软的.net framework中特有的概念。
非托管代码:也叫本地(native)代码。
托管代码:是由公共语言运行库(CLR)执行的代码,而不是由操作系统直接执行。本地代码经过两次编译,第一次将源代码编译成中间代码(MSIL,MicrosoftIntermediate Language),第二次由.net中的CLR将中间代码编译成机器代码。程序实际上是被“托管”在公共语言运行库中。随着程序集的运行,公共语言运行库会持续地提供各种服 务,例如内存管理、安全管理、线程管理等等。和托管资源/非托管资源不同,不要弄混。
托管代码的优点
1.跨平台。有关内存管理(内存申请,内存释放,垃圾回收之类的)全部都是.net的CLR来管理
2.更加安全,不会出现诸如内存泄露之类的问题
托管代码的缺点
1.对程序的性能也产生一定的影响。CLR首次加载程序集代码时,JIT将IL编译成本地代码时,会对其进行代码优化,这类似与非托管C++编译器的后端所做的事情.这可能也会花费加多的时间生成优化代码。
2.不能直接读取内存,不够灵活
C#托管代码和非托管代码相关推荐
- 托管代码与非托管代码
什么是托管代码? 托管代码是一microsoft的中间语言,他主要的作用是在.NET FRAMEWORK的CLR执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段 ...
- C# CLRInsideOut 托管代码与非托管代码互操作,产生相关调用代码的好工具 C++ 头文件转C# 的好工具...
CLRInsideOut 托管代码与非托管代码互操作,产生相关调用代码的好工具 C++ 头文件转C# 的好工具 http://download.csdn.net/source/2914818 转载于 ...
- 托管代码和非托管代码
一.什么是"托管代码"? 1.1.托管代码 托管代码是使用可在 .NET 上运行的一种高级语言(例如 C#.Visual Basic.F# 等)编写的. 使用相应的编译器编 ...
- C#基础知识之托管代码和非托管代码
什么是托管代码(managed code) 托管代码(Managed Code)就是中间语言(IL)代码,在公共语言运行库(CLR)中运行.编译器把代码编译成中间语言,当方法被调用时,CLR把具体的方 ...
- 托管代码和非托管代码的区别
什么是托管代码? 托管代码是一microsoft的中间语言,他主要的作用是在.NET FRAMEWORK的CLR执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段: ...
- 托管代码与非托管代码之间与托管程序
自.Net问世以后,我们习惯的VC++,VB编程模式有了很大的变换,托管与非托管的概念也不断映入程序员们的眼帘,可以说.NET正逐步成为编程的主流语言和平台之一.今天不与大家讨论谁主沉浮,也不发表慷慨 ...
- [转]托管代码与非托管代码
什么是托管代码(managed code)? 托管代码是一microsoft的中间语言(IL),他主要的作用是在.NET FRAMEWORK的公共语言运行库(CLR)执行代码前去编译源代码,也就是 ...
- .Net 托管代码和非托管代码的区别
1.什么是托管代码(managed code)? 托管代码是一microsoft的中间语言(IL),他主要的作用是在.NET FRAMEWORK的公共语言运行库(CLR)执行代码前去编译源代码,也就是 ...
- 托管代码与非托管代码之间的交互
基础知识:如下所示: 1.在运行时控制下执行的代码叫做托管代码:在运行时之外执行的代码叫做非托管代码. 2.可以使用vs提供的dumpbin工具来获取动态链接库中提供的所有函数.如:dumpbin / ...
- 托管代码和非托管代码的介绍,以及在这区别下的混合调试方法
什么是托管代码(managed code)? 托管代码是一microsoft的中间语言(IL),他主要的作用是在.NET FRAMEWORK的公共语言运行库(CLR)执行代码前去编译源代码,也就是说托 ...
最新文章
- linux path环境变量检索目录,Linux下动态链接库加载路径及搜索路径问题
- BZOJ 2402 陶陶的难题II (树链剖分、线段树、凸包、分数规划)
- element-ui中el-table的表头、内容样式
- dubbo-go 中如何实现路由策略功能
- Spark Streaming之updateStateByKey和mapWithState比较
- Spring-context-AnnotationConfigUtils类
- 【感悟】此时此刻,新年快乐
- [论文摘录] Web Service QoS的几个研究方向
- 大数据分析的环节有哪些
- c++ 编程规范技巧
- Mysql安装包安装教程(亲测简单高效版)
- 进销存excel_Excel进销存管理系统!这6套不同风格的版本,财会可直接套用
- 2021年将最流行的10大JavaScript库
- Linux【操作系统】
- Spring cloud oauth2搭建OAuth2.0授权服务
- Bzoj4556: [Tjoi2016Heoi2016]字符串
- 你清楚搭建会员积分系统的目的吗?
- 八股文写春联会是什么样子?
- 什么是客户端与服务器端
- 英文科技论文写作与学术报告2021秋期末考答案|网课期末考答案|学堂在线|清华大学管晓宏教授