2009-08-28 220 views
17

究竟是un-managedmanaged memory? 有人可以简单地解释我吗?非托管内存和托管存储

此外,什么时候管理内存的概念是采取RAM究竟意味着,调用管理-RAM。关于“受管理的RAM”和“未受管理的RAM”的具体细节是什么?

回答

35

它是所有相同的物理内存。区别在于谁在控制它。

微软的定义是,管理存储器由一个垃圾收集器(GC),即一些过程,周期性地确定哪些物理存储器的一部分,在使用中,哪些不是清理。

非托管内存是由东西清理其他如你的程序或操作系统。

术语非托管内存是有点像第一次世界大战,它不叫直到后第二次世界大战以前它只是记忆。

+0

adrianm,谢谢答案 – Naruto 2009-08-28 07:33:51

+2

在幕后,.NET运行时/ JVM也使用非托管内存。它是从操作系统的内存管理器分配的 - 就像任何非托管程序一样。简单地说,它根据需要分配一块更大的内存,并将其称为“托管堆”。然后通过运行时(GC)帮助管理对象使用该块。运行时还需要处理/减小大小,并在完成时将内存返回给操作系统。所以我宁愿将“托管”内存称为“非托管”内存的虚拟部分。 – user492238 2011-02-11 13:35:28