Готовый перевод 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_

Настройки

Готово:

3.10% КП = 1.0

Непереведённые фрагменты будут пропущены.