2009-08-28 19 views
17

quali sono esattamente un-managed e managed memory? qualcuno può spiegarmi in breve?Memoria non gestita e memoria gestita

Inoltre, cosa significherebbe esattamente quando il concetto di memoria gestita viene portato in RAM, chiamando la RAM gestita. Quali sono alcune delle specifiche su "RAM gestita" e "RAM non gestita"?

risposta

35

È la stessa memoria fisica. La differenza è chi lo sta controllando.

La definizione Microsoft indica che la memoria gestita viene eliminata da un Garbage Collector (GC), ovvero da un processo che determina periodicamente quale parte della memoria fisica è in uso e cosa no.

La memoria non gestita viene eliminata da qualcos'altro, ad es. il tuo programma o il sistema operativo.

Il termine memoria non gestita è un po 'come la prima guerra mondiale, non è stato chiamato così fino alla seconda guerra mondiale. In precedenza era solo memoria.

+0

adrianm, Grazie per la risposta – Naruto

+2

Dietro le quinte, .NET runtime/JVM utilizza anche memoria non gestita. Viene assegnato dal gestore della memoria del sistema operativo, proprio come farebbe qualsiasi programma non gestito. In poche parole, alloca una porzione di memoria più grande secondo necessità e la chiama "heap gestito". Tale blocco viene quindi "gestito" per l'utilizzo da parte degli oggetti gestiti con l'aiuto del runtime (GC). Il runtime si occupa anche di inserire/ridurre le dimensioni e restituisce la memoria al sistema operativo una volta terminato. Quindi preferirei chiamare la memoria "gestita" come parte virtuale della memoria "non gestita". – user492238

Problemi correlati