C # Использование GC и как отследить утечку памяти - PullRequest
1 голос
/ 23 апреля 2011

У меня большое приложение на сервере C #, мне интересно узнать, как работает класс GC, и, в частности, какие действия следует предпринять, чтобы определить источник возможной утечки памяти.

Есть ли какие-либокниги на эту тему, или это не так уж и хорошо?

Ответы [ 6 ]

2 голосов
/ 23 апреля 2011

Существует множество источников, которые вы можете изучить.

Надеюсь, вы не пропустите основы:

  • CLR via C # 3rd Edition Джеффри Рихтера

Я думаю, прежде чем перейти к подробностям о GC, попытайтесь понять, как обрабатывается IDisposable и управление ресурсами:

GC: * ​​1018 *

Надеюсь, это поможет начать.

1 голос
/ 23 апреля 2011

Rico Mariani предлагает отличную статью: Отслеживание утечек управляемой памяти (как найти утечку ГХ) .Я часто использовал эту технику и она проста и эффективна.А знакомство с настоящим отладчиком, таким как Windbg, является дополнительным бонусом!

1 голос
/ 23 апреля 2011

Тоже не книга, а достойная статья. Обнаружение утечки памяти в .NET

1 голос
/ 23 апреля 2011

Не книга, но наша команда использовала ANTS Memory Profiler с довольно хорошим успехом для отслеживания управляемых утечек памяти. Их раздел поддержки и включенная справка проведут вас через процесс отслеживания различных типов проблем с памятью. Сюда не входит специфика самого класса GC, а только то, как отследить типичные ошибки (отмена регистрации обработчика событий, статические переменные и т. Д.).

0 голосов
/ 05 июня 2014

В дополнение к ответам, приведенным выше, на Channel 9 появились более свежие видео с Маони Стивенсом (основным разработчиком GC в команде CLR в Microsoft), в котором вы познакомитесь с основами GC, на что должны обращать внимание разработчики, как им следует устранение неполадок и некоторые инструменты, которые вы можете использовать. Я нашел объяснение того, как работает GC и концепция поколений и корней, действительно полезным.

Вот первая часть серии из 3 эпизодов:

http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-33-CLR-GC-Part-1

0 голосов
/ 23 апреля 2011

Существует также SciTech .NET Memory Profiler , наша команда успешно его использует.

...