чтобы не было ссылок больше на нее?
ну то есть если сделать
var foo = 10;
то сборщик мусора ничего не будет делать пока я не сделаю
foo = null;
?
И как в таком случае быть с финальными переменными и null safety? Там же нельзя сделать foo = null.
К чему такие беспокойства?)
ну просто интересно, вдруг все переменные оказывается лучше делать null в конце чтобы мусор собирать?)
Нет, это бессмысленно) так ты только излишнюю работу подкинишь муссорщику... И всякие константы типа чисел/строк не чистятся... А ещё различные системные объекты.
ну если есть типо final input = stdin.readLineSync(); print(input); и дальше этот input нигде не используется. его получается не соберет сборщик и он постоянно будет в памяти хранится? Или он в какой то момент все таки очистится?
Там оптимизатор, я думаю он догадается что оно больше нигде не используется... А если хочешь прям так агрессивно делай все в одну строку типа: for(final i in (const JsonDecoder().fuse(const Utf8Decoder()).decode(File('path.txt').readAsBytesSync())['some'] as String).split('\n').map((e) => '@$e@').join().codeUnits) print(i);
Сборщик в дарте работает на основе поколений
А, ну то есть если дальше нигде не используется то он очищает?
Обсуждают сегодня