Управляемая и неуправляемая куча - PullRequest
5 голосов
/ 08 июля 2011

Что такое неуправляемая куча?

Я думал, что любая объектно-ориентированная память, которой управляет CLR, была управляемой кучей, так почему мы говорим о неуправляемой куче?

Ответы [ 3 ]

10 голосов
/ 08 июля 2011

Представьте, что вы вызываете функцию Win32 с помощью P / Invoke, и это выделяет некоторую память с помощью malloc.Сборщик мусора не видит эту память - она ​​ неуправляемая .

Это может или не может быть контекст, в котором вы слышали термин, конечно - если бы вы могли указать намк некоторым примерам мы можем помочь вам больше.

5 голосов
/ 08 июля 2011

Согласно Джону Скиту - куча managed - это та, что .net будет управлять для вас, на которой созданы все стандартные объекты, о которой вам обычно не нужно беспокоиться, потому что она управляется.

unmanaged означает, что вы лично выделяете память, и поэтому вы несете личную ответственность за ее освобождение, управление ею и отслеживание того, что используется.

Так что да, память объекта (в смысле нормального создания и уничтожения объекта, вещей, происходящих от объекта) управляется. Это еще одна вещь, о которой вам нужно беспокоиться - не объекты и память, выделенная для них.

0 голосов
/ 17 февраля 2016

Чтобы понять неуправляемую кучу в .net, нам нужно понять, что такое управляемая куча.

В .net Framework у нас есть сборщик мусора, который инициализируется подпрограммой общего языка. Во время инициализации сборщик мусора выделяет сегмент памяти для хранения и управления объектами, созданными в управляемом коде. Эта память называется управляемой кучей, в отличие от в собственную кучу операционной системы.

Неуправляемая куча - это та, которая используется неуправляемым кодом / собственным кодом для выделения памяти во время выполнения. Эта куча не находится под контролем сборщика мусора, и она должна обрабатываться разработчиком для освобождения выделенной памяти. Разница между "управляемым" и "неуправляемым"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...