Содержание
- 2. Основные этапы работы с памятью Выделение памяти под ресурс Инициализация памяти Использование памяти Очистка памяти/освобождение ресурса
- 3. Проблемы управления памятью Память не бесконечна! Явное управление памятью отвлекает программиста от его основных задач Ошибки
- 4. Проблемы управления памятью (окончание) Необходимо различать уничтожение памяти (уничтожение объекта/уничтожение путей доступа) и утилизацию памяти (сборка
- 5. Влияние управления памятью на языки программирования Разработка практически всех языков программирования ориентирована на ту или иную
- 6. Примеры различных подходов Алгол 60: "первый идентификатор", с которым ассоциируется структура данных; "первый идентификатор" разрушается при
- 7. Неявное управление памятью Тенденция развития современных языков программирования: предоставить программисту только неявные средства управления памятью, через
- 8. Фазы управления памятью Начальное распределение памяти методы учета свободной памяти Утилизация памяти перемещение указателя стека сборка
- 9. Статическое управление памятью Простейший способ распределения памяти Производится во время трансляции и не меняется во время
- 10. Стековое управление памятью Простейший метод распределения памяти времени выполнения Освобождение памяти в обратном порядке Задачи утилизации,
- 11. Управление кучей Куча - это блок памяти, части которого выделяются и освобождаются способом, не подчиняющимся какой-либо
- 12. Начальное распределение и повторное использование Обычное решение - список свободного пространства. Например, в C-runtime heap для
- 13. Различные подходы к утилизации памяти Явный захват/возврат памяти Механизм malloc/free. Проблема мусора и висячих ссылок Счетчики
- 14. Сборка мусора Основная идея: допускается мусор, чтобы избежать висячих ссылок При исчерпании памяти мы выявляем мусор
- 15. Алгоритм выделения памяти в .NET Все ресурсы выделяются из управляемой кучи Стековый механизм выделения памяти (хранится
- 16. Алгоритм сборки мусора (нулевое приближение) Активные элементы определяются просмотром от корневых объектов (глобальные, статические, локальные объекты
- 17. Как все это работает? class Application { public static int Main(String[] args) { // ArrayList object
- 18. Проблемы сборки мусора Т.к. ссылки изменяются, на время работы сборщика мусора вся полезная работа прекращается -
- 19. Завершители Позволяют выполнить необходимые операции перед тем, как объект будет освобожден сборщиком мусора Завершители не являются
- 20. Проблемы завершителей Объекты с завершителями дольше создаются, требуют дополнительных затрат ресурсов и дольше остаются в системе
- 21. Finalization Internals? Память до сборки мусора Память после первой сборки мусора Память после второй сборки мусора
- 22. Воскрешение объектов class Application { static public Object ObjHolder; // defaults to null ... } public
- 23. Поведение воскрешенных объектов Объект уже был завершен; поведение малопредсказуемо Воскрешаются также все объекты, на которые указывал
- 24. Форсированная очистка объектов Методы Close/Dispose (Close для объектов, которые могут быть переиспользованы, Dispose для "одноразовых" объектов)
- 25. Метод SuppressFinalize public class FileStream : Stream { public override void Close() { // Clean up
- 26. Завершители нельзя уравновешивать! Повторные вызовы ReRegisterForFinalize нельзя уравновесить многократными SuppressFinalize, т.к. после вызова Finalize соответствующий флаг
- 27. Связанная проблема FileStream fs = new FileStream("C:\\SomeFile.txt", FileMode.Open, FileAccess.Write, FileShare.Read) StreamWriter sw = new StreamWriter (fs);
- 28. Слабые ссылки Ссылка на объект из корневого объекта называется сильной ссылкой (strong reference) Существует механизм слабых
- 29. Пример использования слабых ссылок Void Method() { Object o = new Object(); // Creates a strong
- 30. Зачем нужны слабые ссылки? Для оптимизации: некоторые объекты легко создаются, но требуют много памяти (образ структуры
- 31. Два типа слабых ссылок Конструктор слабых ссылок имеет параметр trackRessurection (по умолчанию false) Слабые ссылки, не
- 32. Алгоритм сборки мусора (первое приближение) GC строит граф достижимых объектов (см. выше) GC просматривает таблицу коротких
- 33. Поколения Исследования показали, что для большинства программ верны следующие предположения: Чем моложе объект, тем меньше его
- 34. Пример поколений объектов
- 35. Оптимизация алгоритма сборки мусора Сборка мусора только в нулевом поколении Остановка обхода графа на старых объектах
- 36. Сборка мусора в многопоточных приложениях Все потоки должны приостанавливаться на время сборки мусора Fully Interruptible Code
- 37. Сборка крупных объектов Крупные объекты (больше 20 Кб) выделяются в отдельной куче. Завершение и освобождение крупных
- 38. Явное использование сборки мусора System.GC.Collect() инициирует немедленную сборку мусора (параметр - номер поколения, по умолчанию =
- 40. Скачать презентацию















![Как все это работает? class Application { public static int Main(String[] args)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/390557/slide-16.jpg)





















Тематическая картина. Бытовой и исторический жанр
АГ ААФ
Презентация на тему Разбор по членам предложения Как устроен наш язык
Введение в инженерные практики XP Anton Katkov. - презентация
Высокоуровневые методы информатики и программированияЛекция 22Работа с внешними устройствами
Являются ли современные итальянцы прямыми потомками древних римлян?
Добро пожаловать на Алтай
Аффект
Культура ислама
Poetry is a phantom script telling how rainbows are made and why they go away Carl Sandburg
Дом Александра Дмитриевича Улыбышева
The Long March
Сущность и принципы автоматизации
MarketLab’12 MarketLab’12 Интернет-маркетинг. Суть. Данность. Тренды. (куда мы движемся) киев 10 утра!
Презентация на тему Конкурентоспособность государств на мировом рынке
Образовательные организации
Aртель на крыше. Производство архитектурных моделей
Выходить за рамки привычного, создавать неожиданные решения, удивлять, привносить эстетику и изысканность стиля…
Творческая работа
Инвестиционная привлекательность российских страховщиков
Студент Федор Шпагин
Борьба Руси с западными завоевателями
Г.Р.Державин. Вехи жизни и творчества
Педагогические требования к техносфере школы при реализации Федерального государственного образовательного стандарта
РДШ
Принципы (начала) налогообложения
Literature for Children
Что такое понятие?