Механизм управления памятью Swift для объектов классов Отслеживает число активных ссылок на объект — счетчик ссылок При добавлении ссылки счётчик увеличивается на 1, при её удалении — уменьшается на 1 После достижения…
Снижение объёма мусора при инициализации Spine-анимаций Проанализировал работу Spine runtime и источники нагрузки на GC Кэшировал объекты (Skeleton, AnimationState), чтобы использовать их повторно Применял пул…
динамический массив, использующий динамическое выделение памяти перед добавлением проверяется наличие свободной ёмкости если свободного места недостаточно — резервируется дополнительная память (примерно в 2 раза…
Время жизни переменной в heap участок динамической памяти, предназначенный для переменных существует до явного освобождения (free/delete) либо запуска сборки мусора не привязана к времени выполнения функции, в отличие…
Загрузка большого словаря и обработка запросов по ключу предварительная загрузка при запуске приложения (инициализация) размещение в памяти в структуре с быстрым доступом, например HashMap или словаре применение…
Как изменяется стек при вызове функции? в стек помещается контекст вызова функции формируется фрейм стека (Stack Frame), где хранятся параметры, локальные переменные и адрес возврата выполнение переключается на тело…
Как эффективнее использовать память в Go? управление памятью при работе горутин и стека: Go применяет динамический стек, благодаря чему уменьшаются накладные расходы эффективное использование срезов и массивов:…
Чем отличаются Array, Set и Dictionary Все три типа предназначены для хранения коллекций данных Array — индексированный упорядоченный список, в котором разрешены дубликаты Set — неупорядоченная коллекция уникальных…
создание копии объекта с рекурсивным клонированием всех вложенных объектов простое присваивание и Object.assign не подходят, поскольку они копируют только верхний уровень JSON.parse(JSON.stringify(obj)) — быстрый…
массив имеет фиксированный размер, поэтому его очищают перезаписью элементов нулевыми значениями слайс — динамическая структура, которая ссылается на массив сбросить длину: slice = slice[:0] — элементы логически…
управлять ссылками и освобождать объекты сразу после того, как они перестали быть нужны применять WeakMap/WeakSet для хранения слабых ссылок не использовать глобальные переменные без необходимости — они существуют на…