
Сборщик мусора в Dart. Часть 1: память и указатели
dslmnvv 26 минут назад Сборщик мусора в Dart. Часть 1: память и указатели Средний 4 мин 1.4K Dart * Flutter * Программирование * Разработка мобильных приложений * FAQ Из песочницы Про сборщик мусора сейчас почти не...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
В сфере искусственного интеллекта произошло заметное событие. dslmnvv 26 минут назад Сборщик мусора в Dart. Часть 1: память и указатели Средний 4 мин 1. 4K Dart * Flutter * Программирование * Разработка мобильных приложений * FAQ Из песочницы Про сборщик мусора сейчас почти не говорят, при этом я часто слышу от коллег, что на собеседованиях про него спрашивают.
И ещё заметил, что это один из популярных вопросов. Нормальных статей или обзоров про это почти нет, а если и есть, то они тяжёлые и очень нагруженные технической частью, которую понимают только сами создатели статей. Эта статья — моя попытка объяснить вам доходчивым языком, что же такое Garbage Collector в Dart, объяснить почему эти некоторые знания нам нужны на практике и что из всей этой тяжелой, технической внутрянки вам необходимо знать.
Технические детали
Эта статья опирается на документацию Вячеслава Егорова о внутренностях Dart VM. Я пересказываю её простым языком и добавляю то, что важно на практике. Биты наше всеДа, все настолько будет разжевано, что придется вспомнить основы основ.
Что же такое биты и зачем они нам:Если брать простой пример примитивный, то память компьютера можно визуализировать как длинный ряд ячеек, внутри каждой такой ячейки лежит бит, а бит это 0 или 1. С битами процессор работает не по одному, а группами. И если мы возьмем «современные» 64-битные процессоры, то увидим, что у все они работают с группами битов размером 64 бит(8 байт).
Одну такую группу можно называть машинным словом. Указатель же в Dart помещается ровно в это одно машинное слово, то есть 8 байт. Итак, два важных утверждения из описанного:Бит 0 или 1 Указатель = 8 байт.
Отраслевые последствия
Что такое указательУказатель это не сам адрес, а место, где этот адрес записан. Возьмем аналогию на примере адреса дома. Листок это указатель, а то, что на нем написано — это и как раз и есть адрес.
Когда программе необходимо узнать адрес, она берет указатель и считывает адрес. По этому адресу мы дальше узнаем что же за объект нас ждет и объект ли это вообще. Адрес может ссылаться не на объект?
И это гениальное решение. В коде мы используем разные данные. Разного вида числа и объекты.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





