Паттерн IDisposable в .NET предназначен для управления неуправляемыми ресурсами. Метод Dispose() позволяет пользователю явно освободить занятые ресурсы. Dispose можно вызвать вручную либо автоматически с помощью…
Поколения (generations) и условия запуска сборщика мусора Поколения — это подход к управлению памятью, при котором объекты распределяются по продолжительности жизни: на молодое (new), старое (old) и, в некоторых…
Виды сильных и слабых ссылок в JVM и сценарии их применения Сильные ссылки (Strong references) обычный, классический механизм ссылок в Java пока существует сильная ссылка, сборщик мусора не удаляет объект по умолчанию…
Механизмы управления памятью Стек: быстрое автоматическое выделение и освобождение при ограниченном объёме Куча: динамическое выделение, требующее контроля освобождения и обычно работающее медленнее Сборщик мусора…
Основные проблемы финализатора (деструктора) момент вызова непредсказуем, поскольку его определяет GC длительное выполнение финализатора способно задержать сборку мусора при работе с другими ресурсами возможны дедлоки…
область памяти для объектов, выделяемых динамически данные с непредсказуемой продолжительностью жизни объекты, чей размер нельзя определить во время компиляции в JVM: экземпляры классов и строки (кроме string pool) в…
Поколения управляемой кучи .NET и продвижение объектов между ними В управляемой куче .NET предусмотрены три поколения: Gen 0, Gen 1 и Gen 2 Gen 0 предназначено для недавно созданных объектов и очищается быстро и часто…
коллекция содержит слабые ссылки на объекты GC освобождает объекты, для которых не осталось сильных ссылок часто выгружаемые объекты быстро превращаются в null внутри коллекции возможна нестабильность данных: элементы…
Обзор протоколов прикладного уровня и практический опыт HTTP/HTTPS: базовые протоколы веба для клиент-серверного взаимодействия и REST API FTP/SFTP: обмен файлами; SFTP обеспечивает защищённую передачу поверх SSH…
Основные типы ссылок в Swift управление памятью с помощью ARC (Automatic Reference Counting) strong — удерживает объект и увеличивает его счётчик ссылок weak — не удерживает объект и не увеличивает счётчик; ссылка…
Этапы деинициализации объекта в ARC ARC (Automatic Reference Counting) автоматически управляет памятью в Swift и Objective-C процесс запускается после того, как счетчик ссылок объекта становится равен нулю система…
Какова разница между слайсами и массивами в Go? в Go используются два типа данных: массив и слайс массив имеет фиксированный размер, который является частью его типа слайс динамичен и представляет собой ссылку на…