#garbage_collector — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #garbage_collector, aggregated by home.social.
-
Сборщик мусора в Dart. Часть 2: поколения и scavenge
В первой части мы разобрались как Dart отличает число от объекта. Эти знания нам пригодятся, чтобы разобраться в дальнейших хитростях сборщика. Перед нами стоит самый главный вопрос: А как сборщик все-таки за собой убирает? Молодое и старое поколение. Что происходит в обычном build() у Flutter-виджета? За один кадр создается куча временных объектов: EdgeInsets, Padding, промежуточные TextStyle, какие-то списки, замыкания. Живут они до следующего ребилда(Не учитывая const). Также у нас есть и другая категория объектов, которые живут долго: синглтоны, кэши, репозитории, состояние приложения. Они создаются один раз и живут все время работы. Отсюда вывод, если молодые объекты пересоздаются пачками, а старые в основном живут, то убирать их одинаково не выгодно. Именно поэтому Dart делит кучу на 2 поколения...
https://habr.com/ru/articles/1066560/
#Dart #Flutter #сборка_мусора #garbage_collector #gc #управление_паматью #dart_vm #scavenge #поколение #newspace
-
Сборщик мусора в Dart. Часть 1: память и указатели
Про сборщик мусора сейчас почти не говорят, но я часто слышу от коллег, что на собеседованиях про него спрашивают. Ещё заметил, что это один из популярных вопросов. Нормальных статей или обзоров про это почти нет, а если и есть, то они тяжёлые и очень нагруженные технической частью, которую понимают только сами создатели статей. Эта статья — моя попытка объяснить вам доходчивым языком, что же такое Garbage Collector в Dart, объяснить почему эти некоторые знания нам нужны на практике и что из всей этой тяжелой, технической внутрянки вам необходимо знать.
https://habr.com/ru/articles/1054356/
#Dart #Flutter #сборка_мусора #garbage_collector #GC #управление_памятью #указатели #Smi #tagged_pointers #Dart_VM
-
Я написал визуализатор сборщика мусора для Go — теперь GC не чёрный ящик
Сборщик мусора в Go обычно воспринимается как что-то, что просто работает. И это, в общем, хорошо: большую часть времени о нём действительно не хочется думать. Ровно до того момента, когда под нагрузкой сервис начинает тормозить, растут задержки и потребление памяти. В такой момент проверяешь всё подряд: CPU, метрики, сеть, pprof. И среди всего этого про сборщик мусора обычно даже не вспоминают - хотя он вполне может быть причиной просадок производительности. В Go есть встроенные инструменты, чтобы заглянуть в его работу. Проблема в том, что в реальном запуске это быстро превращается в поток строк и чисел, из которого крайне сложно понять общую картину: стал ли GC вызываться чаще, появились ли долгие паузы, растёт ли потребление памяти. Я написал gcscope — терминальный визуализатор сборщика мусора для Go. Он показывает, как ведёт себя GC в реальном времени: насколько часто он запускается, как меняется потребление памяти, есть ли моменты, когда паузы становятся заметно длиннее обычного. Работает с любым Go-приложением без правок в коде, и вы сразу видите наглядные графики вместо потока логов. А ещё можно сравнивать поведение своего сервиса до и после изменений.
https://habr.com/ru/articles/1043034/
#go #golang #gc #garbage_collector #сборщик_мусора #gogc #open_source #performance #tui
-
[Перевод] Сборщик мусора в Go. Часть 2: GC Traces
Команда Go for Devs подготовила перевод статьи о том, как оптимизация аллокаций в Go может снизить нагрузку на сборщик мусора и ускорить приложение почти в два раза. Автор показывает на примере реального веб-приложения, как профилировать кучу, находить «горячие» места и убирать лишние аллокации, чтобы снизить задержки и повысить пропускную способность.
https://habr.com/ru/articles/948864/
#go #garbage_collector #gc #профилирование #pprof #оптимизация #аллокаций #производительность #heap #strings
-
Как рождаются, живут и умирают горутины
Вы когда-нибудь, глядя на горутину, думали, что у неё под капотом? Я вот решил посмотреть. И сегодня расскажу о том, как рантайм Go создаёт и управляет горутинами, о статусах, которые у них есть, и некоторых хитростях, к которым прибегают создатели языка.
https://habr.com/ru/companies/ozonbank/articles/877242/
#go #runtime #garbage_collector #goroutine #internal #golang #source_code