Готовый перевод Under the Hood of .NET Memory Management / Под капотом у памяти в .Net: Chapter 4: Common Memory Problems
Попросту говоря, .NET Framework огромен. От многих его областей зависит управление памятью и потенциально могут возникнуть проблемы с ней. Некоторые области мы рассмотрим в этой главе. Сначала мы выясним, как базовая система типов влияет на использование памяти. Затем подробнее разберём, как паттерн Dispose влияет на использование памяти и работу сборщика мусора.
В процессе мы обнаружим некоторые неожиданные факты, касающиеся памяти. .NET Framework делает за нас многое, иногда используя при этом дополнительную память, о чём мы легко забываем. Как неизменяемые строки влияют на память? Сколько памяти занимает заголовок класса? Мы рассмотрим эти и другие вопросы с учётом различий между классами и структурами, и выясним, из чего складывается размер объекта.
Последняя версия фреймворка также знакомит с новыми концепциями, которые не только интересны сами по себе, но и представляют новые задачи для управления памятью. Большинство из нас, скорее всего, никогда не задумывались над тем, как лямбда-выражение влияет на память, а оператор yield, возможно, является наименее понятным из ключевых слов, добавленных в язык.
В завершение мы разберёмся, как различные стили программирования могут влиять на память и усложнять работу сборщика мусора. Мы рассмотрим, как излишние ссылки, повторы и долгоживущие объекты могут привести к фрагментации, из-за чего сборщику мусора будет сложнее функционировать.
Это может показаться нелёгким путешествием, но, когда оно закончится, вы будете намного более внимательны к тому, как ваши действия влияют на память.
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод
Переведено на Нотабеноиде
http://notabenoid.org/book/78130/456345
Переводчики: _exp_
Настройки
Готово:
