Как проверить, хорошо ли работает сборка мусора?

Сейчас приложение начинает с потребления памати в 1.5 Mb, при проверке (вручную подключаюсь из клиента, пытаюсь сгенерировать максимум нагрузки) — плавно растет до 8-9 Мб и останавливается на этой отметке (даже если я продолжаю творить хаос с клиентом).
Есть ещё одно, по идее приложение должно освобождать память (выгружая неиспользуемые части), но со временем потребление не уменьшается (судя по диспетчеру задач).
Потому вопрос: как убедиться, что память не убегает, и если все хорошо, то почему потребление останавливается на 8 Мб вместо того, чтобы уменьшится к начальному уровню?
  • Вопрос задан
  • 3827 просмотров
Решения вопроса 1
jj_killer
@jj_killer
Не должно оно освобождать, если система не попросит. Так работает большинство сборщиков, они отдают память «обратно в программу».
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Iliapan
@Iliapan
освобождение памяти — крайне ресурсозатратный процесс. поэтому оно производится гарбэдж коллектором только по настоятельной просьбе самой системы, ну или регулярно, когда совсем нет другой загрузки
Ответ написан
@lenferer
.Net/Rails developer
Какая ОС и на каком ЯП пишите?
Ответ написан
afiskon
@afiskon
Сборщик мусора может физически не освобождать память, если когда-то для работы было нужно 8 Мб. Есть шанс что данный объем снова потребуется, в этом случае программа будет работать быстрее, если объекты уже созданы. Также есть такая штука, как фрагментация памяти. Часть памяти может вообще не использоваться и быть зарезервированной для уплотнения объектов например, от типа GC зависит. Кое-какие подробности тут например.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы