2009-08-28 19 views
17

czym dokładnie są un-managed i managed memory? Czy ktoś może mi wyjaśnić w skrócie?Pamięć niezarządzana i pamięć zarządzana

Co dokładnie oznacza, kiedy koncepcja pamięci zarządzanej zostanie przeniesiona do pamięci RAM, wywołując zarządzaną-RAM. Jakie są niektóre szczegóły dotyczące "zarządzanej pamięci RAM" i "niezarządzanego RAM"?

Odpowiedz

35

Jest to ta sama pamięć fizyczna. Różnica polega na tym, kto to kontroluje.

Definicja firmy Microsoft polega na tym, że pamięć zarządzana jest czyszczona przez Garbage Collector (GC), tj. Pewien proces, który okresowo określa, jaka część pamięci fizycznej jest używana, a co nie.

Pamięć niezarządzana jest czyszczona przez coś innego, np. Twój program lub system operacyjny.

Termin pamięć niezarządzana jest trochę jak pierwsza wojna światowa, nie nazywano jej aż do drugiej wojny światowej. Wcześniej była to tylko pamięć.

+0

adrianm, Podziękowania Za odpowiedź – Naruto

+2

Poza tym środowisko wykonawcze .NET/JVM wykorzystuje także pamięć niezarządzaną. Jest przydzielany z menedżera pamięci systemu operacyjnego - tak jak zrobiłby to każdy niezarządzany program. Mówiąc po prostu, przydziela większą część pamięci w razie potrzeby i nazywa ją "sterowaną stertą". Blok ten jest następnie "zarządzany" do wykorzystania przez zarządzane obiekty za pomocą środowiska wykonawczego (GC). Środowisko wykonawcze zajmuje się również zmniejszaniem/zmniejszaniem rozmiaru i przywraca pamięć systemowi operacyjnemu po zakończeniu. Więc wolałbym nazwać pamięć "zarządzaną" jako wirtualną część pamięci "niezarządzanej". – user492238