Есть ли в .NET что-то похожее на журнал сбора мусора в Java? - PullRequest
18 голосов
/ 09 января 2010

Есть ли в .NET что-то похожее на журнал сбора мусора в Java?Я хочу записать статистику GC в журнал в производственном приложении.Google не говорит мне ничего полезного, и, похоже, у SO тоже нет вопросов.

Спасибо

Ответы [ 3 ]

6 голосов
/ 09 января 2010

GC статистика доступна в качестве счетчиков производительности. В perfmon они отображаются в категории «.NET CLR Memory». Вы можете получить программный доступ к счетчикам производительности через пространство имен System.Diagnostics (классы PerformanceCounterXxx) или использовать обозреватель сервера для создания удобных оболочек.

Обратите внимание, что это статистика и не обеспечивает подробное ведение журнала для каждого объекта.

3 голосов
/ 09 января 2010

Когда статистика производительности показывает, что есть проблема, вы можете погрузиться в отладчик (windbg), чтобы найти утечки. Команда! GCRoot позволяет узнать, почему память не собирается. См. этот блог для получения дополнительной информации

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

Вы можете настроить уровень регистрации GC самостоятельно, используя Уведомления о сборке мусора . Но учтите, что если вы используете ConcurrentGC, что характерно для серверных приложений, вы получаете уведомления только для сборщиков мусора. Так что это не так полно, как эквивалент Java, но это что-то.

Существует также немало информации, связанной с ГХ, доступной через протоколирование ETW. Вероятно, можно подключить вашего собственного слушателя ETW и извлечь информацию таким образом, но я не знаю заранее запеченного метода для этого.

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