Где они хранятся?
Я изучаю GC на .net. Я хотел бы знать, где хранятся мои целые числа, float или типы значений, хранится статическая переменная, член функций, типы значений в функции.
Любые документы или любой веб-сайт, который вы имеете по этим темам, размещайте здесь.
Спасибо,
Harsha
Ответы
Ответ 1
У меня есть статья, в которой говорится об этом немного, но вы действительно должны прочитать различные сообщения в блоге Эрика Липперта. "Истина о типах значений" , вероятно, самая важная, а также "Стек - это деталь реализации" (часть первая; часть вторая).
В сущности, более важно понимать сбор мусора с точки зрения достижимости и т.д., а не детали реализации того, что происходит в памяти. Это может быть полезно с точки зрения производительности, но вам нужно постоянно напоминать себе, что это деталь реализации.
Ответ 2
Эта ссылка http://msdn.microsoft.com/en-us/magazine/bb985010.aspx объясняет сборку мусора и некоторое управление памятью.
Ответ 3
![enter image description here]()
Примечание: Jon Skeet Отвечать более корректно
Стек:
Стек - это раздел памяти, который выделяется для автоматических переменных внутри функций.
Данные хранятся в стеке с использованием метода Last In First Out (LIFO). Это означает, что память в памяти распределяется и освобождается только на одном конце памяти, называемой верхней частью стека. Stack - это раздел памяти и связанные с ней регистры, которые используются для временного хранения информации, в которой первый сохраненный элемент является первым, который будет извлечен.
Память кучи
С другой стороны, куча - это область памяти, используемая для распределения динамической памяти. Блоки памяти выделяются и освобождаются в этом случае в произвольном порядке. Структура распределения и размер блоков неизвестна до времени выполнения. Куча обычно используется программой для разных целей.
Стек намного быстрее, чем куча, но также меньше и дороже.
Пример: (для C, но не С#)
int x; /* static stack storage /
main() {
int y; / dynamic stack storage /
char str; / dynamic stack storage /
str = malloc(50); / allocates 50 bytes of dynamic heap storage /
size = calcSize(10); / dynamic heap storage */
Над контентом Взято отсюда
Ответ 4
Вы можете посмотреть следующие статьи:
С# Куча (ing) Vs Stack (ing) в .NET