Я тут недавно проводил курс по сборке мусора и в результате накопилось немалое количество источников, которые были бы полезны любому, кто хочет освоить эту тему более подробно. Ну, а чтобы дело не пропадало даром, я думаю будет здорово этими источниками поделиться.
Книги
- Under the Hood of .NET Memory Management by Chris Farrell and Nick Harrison
Книга не большая (225 страниц), посвященная сборке мусора на платформе .NET и описанию типовых проблем работы с памятью и советов по их устранению. Очень неплохая книга, с достаточной глубиной изложения, но без особых дебрей и заумностей; основные моменты изложены хорошо, но я бы посоветовал относиться с осторожностью к некоторым советам по оптимизации и не забывать, что к ним нужно приступать только после профилирования.
Электронная версия книги свободна доступна в Сети. - Advanced .NET Debugging by Mario Heward
Книга не по сборке мусора непосредственно, но в ней покрыты очень многие низкоуровневые детали, которые можно «пощупать» с помощью отладки. Очень толково написано, хотя иногда бывает перебор с количеством низкоуровневых деталей. - Pro .NET Performance by Sasha Goldstein at al
Интересная книга по производительности в целом, но и с разделом по сборке мусора. Книга кажется очень интересной, а точное мнение о ней, я надеюсь у меня появится через месяц-другой после ее прочтения. - CLR via C# by Jeffrey Richter
Классика. Хотя в этом плане здесь не менее полезной будет практически любая хорошая книга по языку C# и платформе .NET. C# 4 Unleashed, например, тоже подойдет для знакомства с этой темой.
Статьи
Ниже представлены наиболее интересные статьи (и серии статей) о внутреннем устройстве CLR и сборке мусора в .NET.
- Series on dynamic memory management – отличная серия статей о сборке мусора.
- Notes on CLR Garbage Collector – небольшая, но весьма емкая статья о сборке мусора, да еще и с кучей полезных ссылок в конце.
Dispose Pattern
- Programming Stuff. Dispose Pattern
- Programming Stuff. Инициализаторы объектов в блоке using
Блоги
Далеко не каждый из представленных ниже блогов сейчас активно развивается, но в них накопилось очень много интересного материала. Я рекомендую открывать первый попавшийся блог, сортировать посты по наибольшему количество просмотров и зарываться в любую заинтересовавшую вас тему. Не все в них посвящено сборке мусора, но полезной информации там очень и очень много.
- Maoni’s Weblog – CLR Garbage Collector. Лучший блог по теме GC. Не зря он идет первым, если хотите копнуть поглубже в этой теме, то лучшей стартовой точки не найти!
- Rico Mariani’s Performance Tidbits. Огромное количество статей об эффективности, а поскольку GC играет в ней не последнюю роль, то эта тема встречается в постах довольно часто.
- All Your Base Are Belong To Us. Очень интересный блог от Sasha Goldstein, автора книги Pro .NET Performance. Много всего о внутренностях .NET Framework и о GC в частности.
- Joe Duffy’s Weblog. Отличный блог автора книги Concurrent Programming on Windows, посвящен в основном многопоточности, но есть и много других интересных тем, включая сборку мусора.
- If broken it is, fix it you should. Довольно интересный блог Tess Frerandez об отладке, памяти и всяких низкоуровневых вещах.
Вот некоторые понравившиеся посты:
- Two things to avoid for better memory usage by Rico Mariani
- When to call GC.Collect()? by Rico Mariani
UPDATE:
- Chris Brumme – Finalization
- Weak References and Finalization in Smalltalk
Видео
- Pluralsight - .NET Internals and Advanced Debugging Techniques by Mario Heward. Курс по одноименной книге Марио Хеварда.
Это далеко не полный и/или исчерпывающий список ссылок, поэтому если вы знаете другие интересные источники по этой теме, то смело оставляйте их в комментариях, я внесу их в пост.
Спасибо за отличную подборку! Не подскажете, где можно копнуть о том же, но для JVM?
ОтветитьУдалить3-й и 4-й варинты прям must read!
ОтветитьУдалить@Violator: Ничем, кроме гугла я помочь не могу. По запросу сразу видно куча разных интересных статей, включая статьи с ibm.com, которые славятся своей глубиной.
ОтветитьУдалитья бы упомянула еще блог
ОтветитьУдалитьhttp://stevesouders.com/
Посмотреть видео о сборке мусора в .NET можно тут http://www.enterra.ru/blog/garbagecollectorindotnet/
ОтветитьУдалить