2009-08-28 166 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