home.social

#garbage_collector — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #garbage_collector, aggregated by home.social.

  1. Сборщик мусора в Dart. Часть 2: поколения и scavenge

    В первой части мы разобрались как Dart отличает число от объекта. Эти знания нам пригодятся, чтобы разобраться в дальнейших хитростях сборщика. Перед нами стоит самый главный вопрос: А как сборщик все-таки за собой убирает? Молодое и старое поколение. Что происходит в обычном build() у Flutter-виджета? За один кадр создается куча временных объектов: EdgeInsets, Padding, промежуточные TextStyle, какие-то списки, замыкания. Живут они до следующего ребилда(Не учитывая const). Также у нас есть и другая категория объектов, которые живут долго: синглтоны, кэши, репозитории, состояние приложения. Они создаются один раз и живут все время работы. Отсюда вывод, если молодые объекты пересоздаются пачками, а старые в основном живут, то убирать их одинаково не выгодно. Именно поэтому Dart делит кучу на 2 поколения...

    habr.com/ru/articles/1066560/

    #Dart #Flutter #сборка_мусора #garbage_collector #gc #управление_паматью #dart_vm #scavenge #поколение #newspace

  2. Сборщик мусора в Dart. Часть 1: память и указатели

    Про сборщик мусора сейчас почти не говорят, но я часто слышу от коллег, что на собеседованиях про него спрашивают. Ещё заметил, что это один из популярных вопросов. Нормальных статей или обзоров про это почти нет, а если и есть, то они тяжёлые и очень нагруженные технической частью, которую понимают только сами создатели статей. Эта статья — моя попытка объяснить вам доходчивым языком, что же такое Garbage Collector в Dart, объяснить почему эти некоторые знания нам нужны на практике и что из всей этой тяжелой, технической внутрянки вам необходимо знать.

    habr.com/ru/articles/1054356/

    #Dart #Flutter #сборка_мусора #garbage_collector #GC #управление_памятью #указатели #Smi #tagged_pointers #Dart_VM

  3. Я написал визуализатор сборщика мусора для Go — теперь GC не чёрный ящик

    Сборщик мусора в Go обычно воспринимается как что-то, что просто работает. И это, в общем, хорошо: большую часть времени о нём действительно не хочется думать. Ровно до того момента, когда под нагрузкой сервис начинает тормозить, растут задержки и потребление памяти. В такой момент проверяешь всё подряд: CPU, метрики, сеть, pprof. И среди всего этого про сборщик мусора обычно даже не вспоминают - хотя он вполне может быть причиной просадок производительности. В Go есть встроенные инструменты, чтобы заглянуть в его работу. Проблема в том, что в реальном запуске это быстро превращается в поток строк и чисел, из которого крайне сложно понять общую картину: стал ли GC вызываться чаще, появились ли долгие паузы, растёт ли потребление памяти. Я написал gcscope — терминальный визуализатор сборщика мусора для Go. Он показывает, как ведёт себя GC в реальном времени: насколько часто он запускается, как меняется потребление памяти, есть ли моменты, когда паузы становятся заметно длиннее обычного. Работает с любым Go-приложением без правок в коде, и вы сразу видите наглядные графики вместо потока логов. А ещё можно сравнивать поведение своего сервиса до и после изменений.

    habr.com/ru/articles/1043034/

    #go #golang #gc #garbage_collector #сборщик_мусора #gogc #open_source #performance #tui

  4. [Перевод] Сборщик мусора в Go. Часть 2: GC Traces

    Команда Go for Devs подготовила перевод статьи о том, как оптимизация аллокаций в Go может снизить нагрузку на сборщик мусора и ускорить приложение почти в два раза. Автор показывает на примере реального веб-приложения, как профилировать кучу, находить «горячие» места и убирать лишние аллокации, чтобы снизить задержки и повысить пропускную способность.

    habr.com/ru/articles/948864/

    #go #garbage_collector #gc #профилирование #pprof #оптимизация #аллокаций #производительность #heap #strings

  5. Как рождаются, живут и умирают горутины

    Вы когда-нибудь, глядя на горутину, думали, что у неё под капотом? Я вот решил посмотреть. И сегодня расскажу о том, как рантайм Go создаёт и управляет горутинами, о статусах, которые у них есть, и некоторых хитростях, к которым прибегают создатели языка.

    habr.com/ru/companies/ozonbank

    #go #runtime #garbage_collector #goroutine #internal #golang #source_code