Как виртуальные таблицы определяют тип объекта в рантайме? Область: ПЗУ, объектно-ориентированное программирование, полиморфизм Основной механизм: виртуальная таблица (vtable) При создании объекта класса-наследника в…
Как устроен планировщик горутин в Go и какую роль играют GOMAXPROCS и ядра ОС В Go используется M:N модель: большое количество горутин распределяется между меньшим числом системных потоков (OS threads). За…
Node.js — среда выполнения JavaScript на сервере, а не в браузере браузерный фронтенд не обращается к Node.js напрямую: для этого нет API браузера обмен выполняется через HTTP-запросы (REST, GraphQL) к бэкенду на…
Механизмы управления памятью Стек: быстрое автоматическое выделение и освобождение при ограниченном объёме Куча: динамическое выделение, требующее контроля освобождения и обычно работающее медленнее Сборщик мусора…
область памяти для объектов, выделяемых динамически данные с непредсказуемой продолжительностью жизни объекты, чей размер нельзя определить во время компиляции в JVM: экземпляры классов и строки (кроме string pool) в…
Поколения управляемой кучи .NET и продвижение объектов между ними В управляемой куче .NET предусмотрены три поколения: Gen 0, Gen 1 и Gen 2 Gen 0 предназначено для недавно созданных объектов и очищается быстро и часто…
при продолжительной работе чаще всего возникают исключения, обусловленные исчерпанием памяти или тайм-аутами, которые вызывают утечки ресурсов и падение производительности.
Когда проверяется интерфейс: compile-time или runtime? Контекст: типизация и объектно-ориентированное программирование В статически типизированных языках, включая Java и C#, интерфейсы проверяются на этапе…
Может ли reference type размещаться в стеке? контекст: память, C#/.NET, Java reference type — это объект, ссылка на который обычно располагается в куче место хранения самой ссылки зависит от контекста: это может быть…
TypeScript — язык со статической типизацией, который транслируется в JavaScript Компиляция требуется, чтобы перед запуском в браузере или Node получить валидный JS ts-node — утилита, позволяющая напрямую выполнять TS…
Зачем Go runtime использует “work stealing” и как устроена эта модель? concurrency model Go (Goroutine scheduler) сокращение простоя CPU за счёт динамической балансировки нагрузки каждый P (processor) располагает…
Swift, ARC, управление памятью unowned — неконтролируемая ссылка, которая не увеличивает счётчик ссылок weak — контролируемая ссылка: она изменяет счётчик и выполняет синхронизацию Для weak требуется атомарный доступ…