Основные виды сборщиков мусора Serial GC однопоточный и простой, без параллельных пауз полностью приостанавливает работу приложения (stop-the-world) предназначен для небольших приложений и однопроцессорных систем…
Может ли reference type размещаться в стеке? контекст: память, C#/.NET, Java reference type — это объект, ссылка на который обычно располагается в куче место хранения самой ссылки зависит от контекста: это может быть…
Почему GlobalScope не стоит использовать в большинстве случаев? Kotlin coroutines, GlobalScope — глобальная область видимости Жизненный цикл — весь период работы приложения Нет контроля над отменой и обработкой ошибок…
Почему context не следует надолго сохранять в структуре? context — объект, который передаёт отмену, дедлайны и значения по цепочке вызовов он не рассчитан на длительное хранение, поскольку привязан к сроку жизни…
Почему InputStream и другие ресурсы нужно закрывать явно, если есть сборщик мусора? Управление ресурсами: InputStream использует системные ресурсы, включая файлы и сетевые соединения Сборщик мусора: освобождает…
Сколько памяти нужно массиву из 5 ссылок на объекты классов? память распределяется между ссылками и объектами в куче размер одной ссылки определяется платформой: обычно 4 байта (32-бит) или 8 байт (64-бит) в массиве…
Отличие escaping- и non-escaping-замыканий Swift и управление временем жизни объектов non-escaping: замыкание выполняется только в рамках функции, которой оно передано, и завершается до её окончания escaping:…
Что происходит, когда итератор доходит до конца последовательности? итератор — объект, предназначенный для поэлементного обхода коллекции после последнего элемента он возвращает специальный сигнал (например, done:…
Что представляет собой Copy-On-Write (COW) и можно ли применить его к пользовательским структурам? Copy-On-Write (COW) — это способ оптимизировать использование памяти и производительность, при котором данные не…
Что называют «зомби-процессами» и как они связаны с потоками? завершившийся процесс, запись о котором всё ещё находится в таблице процессов ОС хранит код завершения и ждёт, пока родитель вызовет wait() освобождает…
Что представляет собой профилирование и как применять его в Go? Профилирование — это анализ того, как программа расходует ресурсы, включая CPU, память и блокировки, чтобы находить узкие места и устранять их.