托管和非托管

简介:
托管和非托管是修饰内存的。
托管的意思,你不用直接操作内存,你需要的时候跟我说。我替你申请,然后给你用,你用完可以告诉我,我帮你释放,如果你忙,忘记告诉我了,我也会在定期去帮你释放的。 这就是托管,你打交道的不是直接的内存,而是.net clr。
非托管的意思就是你要自己负责管理内存,这里所说的内存管理。实际上只是堆上的内存管理,栈内存和以前的一样,函数退出则释放,heap上的内存,非托管内存需要自己分配,调用构造函数(c需要,c++里用new替代这部操作了),使用完毕后,需要自己释放这个内存,如果你不小心,吧只想内存的指针弄丢了,就造成内存泄露了,这个内存泄露在你程序退出之前是无法弥补的,所以要小心。(virtualMalloc的情况不在此描述了。因为分配的也不是heap上的内存,属于扩展内存空间,题外话了。)

简单说,托管的意思是托管内存,但多一层必然会慢,这个么,微软早考虑好了,硬件升级,大家掏钱就能解决的问题不是问题。带来的好处是托管内存不会有泄漏的危险。



本文转自武沛齐博客园博客,原文链接:http://www.cnblogs.com/wupeiqi/archive/2013/05/10/3071571.html,如需转载请自行联系原作者

目录
相关文章
|
C# 开发工具 C++
简单C#类转非托管C++
简单C#类转非托管C++
|
3月前
|
存储 开发框架 .NET
托管CLR:深入理解与实现
【8月更文挑战第31天】
27 0
|
6月前
|
弹性计算 运维 Java
部署本地私有代码到阿里云应用管理
对于用户不愿意托管到云上的私有代码,本文提出一种方案,结合云下持续集成和云上持续部署,支持将线下构建出的部署物持续部署到应用分组环境里。
|
算法 C# C++
托管C++实现C#接口崩溃的一种情况
托管C++实现C#接口崩溃的一种情况
|
运维 监控 安全
为什么要选择网站托管服务?网站托管服务的好处是什么
网站托管不但可以解决企业在网站建设后缺乏专业人员运营维护的问题,让专业的人做专业的事情,还可以通过网站托管服务,提升网站的搜索排名为企业带来品牌效益。
250 0
为什么要选择网站托管服务?网站托管服务的好处是什么
|
开发框架 .NET 数据库
8.4 托管服务
有些工作是需要后台运行的,比如每天凌晨备份数据库。ASP.NET Core提供了托管服务来供我们编写后台代码。 托管服务只需要实现`IHostedService`即可,一般在开发时编写继承自`BackgroundService`的类,该类不进实现了`IHostedService`接口,并且处理了任务取消等逻辑,我们只需实现`BackgroundService`中定义的`ExecuteAsync`方法即可。
|
开发框架 .NET C#
C#调用托管C++类
C#调用托管C++类
369 0
C#调用托管C++类
|
监控 安全 数据中心