Операция сбора мусора - PullRequest
       6

Операция сбора мусора

1 голос
/ 27 января 2009

Может кто-нибудь объяснить, как работает сборка мусора?

(я использую C # и Java).

Ответы [ 6 ]

6 голосов
/ 27 января 2009

Основная идея сбора мусора заключается в том, что вам не нужно заботиться об управлении памятью. Сборщик мусора периодически проверяет ссылки на объекты и находит тот, который больше не используется (больше не используется) для восстановления их памяти и уплотнения другого. Сборщик мусора использует различные алгоритмы для выполнения своей работы, и они различаются по некоторым деталям от языка к другому. Википедия дает вам хорошую отправную точку . Если вам нужна более подробная информация о реальной реализации различных сборщиков мусора (Java, .NET, ..), вы можете проверить здесь и здесь или выполнить поиск в Google для получения дополнительной информации.

3 голосов
/ 27 января 2009

Попробуйте книгу Сборка мусора: алгоритмы автоматического динамического управления памятью . В нем не будет чего-то более свежего, но это поможет вам.

1 голос
/ 27 января 2009

Perfmon предоставляет несколько счетчиков для производительности, связанной с ГХ ...

0 голосов
/ 27 января 2009

Я думаю, вам нужно знать, что сборщик мусора - это поток, который запускается в вашей программе, освобождая память, занятую объектами, чьи ссылки делают их недоступными. Вам также необходимо знать, что момент, в который запуски int GC не могут быть предсказаны, вы можете позвонить System.gc() to и предложить для запуска GC, но не заставить его работать , это решение будет принимать JVM.

Если у вас есть: Object objectReference = null;

Объект, на который ссылается objectReference, является GC-приманкой. Темы «островков изоляции» и то, как работает метод finalize(), являются интересными темами для чтения. Я предлагаю быстрый поиск Google на обоих.

0 голосов
/ 27 января 2009
...