Есть ли в PHP сборщик мусора и как работает refcount? Для управления памятью PHP применяет подсчёт ссылок (refcount) У каждого значения есть счётчик ссылок: при копировании он увеличивается, а при удалении —…
Зачем в ARC используется механизм side table? Контекст: управление памятью в Objective-C (ARC) Side table представляет собой вспомогательную структуру данных для хранения дополнительной информации об объекте, которую…
Основой HTTP/3 служит протокол QUIC QUIC работает поверх UDP, а не TCP UDP помогает добиться низкой задержки, поскольку для него не требуется устанавливать соединение Контроль потока и исправление ошибок QUIC…
Финализатор vs IDisposable финализатор — механизм автоматического очищения ресурсов, то есть деструктор его асинхронно вызывает GC, причем точный момент заранее неизвестен IDisposable — интерфейс для явного…
Примитивные значения хранятся по значению: string, number, boolean, null, undefined, symbol и bigint При присваивании или передаче примитива копируется его значение Объекты (Array, Function, Object) хранятся по ссылке…
Устройство List<T> и изменение вместимости массива List<T> в .NET представляет собой динамический массив — собственную оболочку над обычным массивом Элементы хранятся в массиве T[], который изначально имеет…
Как в Go обрабатываются nil и вызовы методов на nil-ресивере nil в Go служит нулевым значением для указателей, интерфейсов, слайсов, карт, каналов и функций У метода может быть ресивер-указатель, значение которого в…
Memory barriers и атомарные операции в Go Memory barriers — это низкоуровневые инструкции процессора и компилятора, управляющие порядком операций с памятью. Они не позволяют CPU или компилятору переупорядочить чтения…
Слайс представляет собой структуру поверх массива, содержащую указатель, длину и capacity Когда length становится равен capacity, для слайса выделяется новый массив Чтобы не выполнять копирование при каждом…
Работа со слайсами (Go slices) Удаление элемента по индексу Для этого объединяют два подслайса: s = append(s[:i], s[i+1:]...) В результате формируется новый слайс без элемента с индексом i, а его длина уменьшается.…
** контролируйте длительность операций в Go через context, задавая таймаут и отмену с помощью context.WithTimeout и Done(). Это позволяет ограничивать время выполнения и корректно освобождать ресурсы.