На senior интервью по Python почти никогда не хватает ответа уровня «в Python есть reference counting и иногда запускается GC». Обычно хотят понять, знаешь ли ты механизм времени жизни объекта в CPython, понимаешь ли разницу между reference counting и cyclic GC, умеешь ли объяснить, почему Python процесс может расти по RSS даже без «классической утечки», можешь ли диагностировать это в production. В актуальном CPython важно еще что модель GC изменилась: начиная с Python 3.14, generation 1 удалено, threshold2 игнорируется, а сборщик циклов стал incremental с моделью young/old, хотя на интервью до сих пор часто спрашивают старую схему 0/1/2.
Рубрика «gc»
Как устроены память и Garbage Collector в CPython: разбор для Python backend interview
2026-03-15 в 8:16, admin, рубрики: cpython, garbage collector, gc, memory management, python, python internalsКак GC останавливает весь мир, чтобы вынести мусор
2025-09-24 в 8:29, admin, рубрики: C#, Garbage collection, garbage collector, gc, Go, java, kotlin, scala, swiftКоротко о самом главном в сборке мусора.
⚠️ Важно: это только концептуальная иллюстрация. В реальных средах исполнения JVM, .NET, Go и т.д. все сложнее!
💡 Терминология:
🔹 GC
Garbage Collector, он же сборщик мусора, чистит память от неиспользуемых объектов.
🔹 Heap (Куча)
Разбираемся в сборщике мусора Go: просто и с гофером
2025-06-30 в 11:23, admin, рубрики: Garbage collection, gc, Go, golang, сборщик мусораЯ решил написать эту статью в первую очередь для себя, потому что перечитал кучу материалов про сборщик мусора (GC) в Go, и почти все они были слишком сложными. Моя цель — объяснить, как работает GC, что такое инкрементальность и барьер записи, так, чтобы я сам понял и запомнил и, возможно, стал полезным для других. А чтобы было веселее, я добавил гофера — маскота Go — в забавных иллюстрациях, которые помогут визуализировать идеи. Если вы, как и я, хотите разобраться в GC без лишней головной боли, эта статья для вас!
Java для сисадминов
2023-03-14 в 7:01, admin, рубрики: Garbage collection, gc, java, jvm, Блог компании ГК ЛАНИТ, Ланит, ПрограммированиеЭта статья написана в основном для системных администраторов Java-приложений (DevOps-инженеров, SRE и других производных специализаций). Вероятнее всего, Java-разработчики уже все это прекрасно знают. Хотя Junior Java-разработчикам эта информация может помочь систематизировать знания.
Дюк, вынеси мусор! — 5. Epsilon GC
2022-08-05 в 18:35, admin, рубрики: epsilon gc, garbage collector, gc, java, jvm
Сборщики мусора из OpenJDK, которые мы успели рассмотреть к этому моменту (Serial и Parallel, CMS и G1, ZGCЧитать полностью »
Оптимизация .NET приложений: большой результат маленьких правок
2021-08-11 в 8:15, admin, рубрики: .net, C#, cil, gc, il, optimizations, performance, pvs-studio, Блог компании PVS-Studio
Сегодня мы посмотрим, как маленькие оптимизации в нужных местах приложения могут неплохо повысить его производительность. Убрали создание лишнего итератора в одном месте, избавились от упаковки в другом, а в итоге получается результат, несоизмеримый с правками.
В нативный код из уютного мира Java: путешествие туда и обратно (часть 1)
2020-10-05 в 12:29, admin, рубрики: C, c++, gc, java, jpoint, Иван Углянский, нативный код, Программирование
Java и другие управляемые языки просты и удобны во многих случаях, но иногда их возможностей недостаточно — например, если нужна библиотека, написанная только на C или C++. Иногда хочется позвать пару методов из системного API, или попытаться улучшить производительность для модуля — и тогда прямой путь в нативный код.
Но тут возникают подводные камни: написать нативный метод и вызвать библиотеку может быть и легко, но JVM начинает крашиться в случайных местах, производительность падает, сборщик мусора перестает справляться с работой, а в репозитории царствуют бесконечные C-шные файлы с буквами JNI. Что же могло пойти не так?
Иван Углянский (dbg_nsk) из Huawei разбирается со всем по порядку: что необычного в интеропе между Java и нативным кодом, как оно работало раньше и что нужно делать для их нормальной совместной работы (и можно ли это вообще сделать). Иван рассказывает, как избежать просадок производительности, внезапных OOM и размышляет на тему будущего — в контексте проектов Panama и Sulong.
Мы подготовили текстовую версию доклада о работе с нативами в Java. В первой части:
- Зачем вообще работать с нативным кодом в Java.
- С какими ошибками и проблемами придётся столкнуться при работе с нативами.
Во второй части подробнее расскажем, какие есть варианты, что из них быстрее и лучше, и есть ли универсальная библиотека — всё с примерами кода и подсказками.
Далее — повествование от лица спикера.
Производительность современной Java при работе с большим объёмом данных, часть 2
2020-06-18 в 19:42, admin, рубрики: big data, gc, java, Блог компании Mail.Ru Group, высокая производительность, никто не читает теги, Программирование
FYI: Первая часть.
Бенчмарк пакетного конвейера
Пакетный конвейер обрабатывает конечный объём сохранённых данных. Здесь нет потока результатов обработки, выходные данные агрегирующей функции нужно применить ко всему набору данных. Это меняет требования к производительности: задержка — ключевой фактор при потоковой обработке — здесь отсутствует, потому что мы обрабатываем данные не в реальном времени. Единственная важная метрика — общее время работы конвейера.
Поэтому мы выбрали Parallel. На первом этапе тестирования, при работе на одной ноде, этот сборщик действительно показал лучшую пропускную способность (но только после настройки). Однако это было получено ценой длительных пауз. Если одна из нод кластера останавливается на сборку мусора, это стопорит весь конвейер. А поскольку ноды собирают мусор в разное время, общее время сборки увеличивается с добавлением каждой ноды к кластеру. Мы проанализировали этот эффект, сравнив результаты тестирования на одной ноде и на кластере из трёх нод.
Кроме того, на этом этапе мы не рассматривали экспериментальные сборщики с низкой задержкой. Их очень короткие паузы не влияют на результаты тестирования, к тому же это достигается за счёт пропускной способности.
Читать полностью »
Почему Flutter побеждает?
2020-05-18 в 2:17, admin, рубрики: android, dart, dartlang, flutter, gc, iOS, mobile development, xamarin, разработка мобильных приложений, Разработка под android, разработка под iOSПоследний год я так или иначе пишу приложения на Flutter для iOS и Android. До этого у меня был и есть 5 летний опыт работы с Xamarin. Это были замечательные 5 лет. Благодаря Xamarin и моей любви к этому фреймворку я, в принципе, перешел в стан разработчиков, этот инструмент помог заработать мне немалых денег, знаний и найти замечательных коллег. Так почему же сейчас я пишу на Flutter? Короткий ответ, потому что Flutter покрывает все потребности кросс-платформенной разработки.

Немного истории
Поправьте меня если я не прав, но 2009 год был во многом ключевым для мобильной разработки в целом и кроссплатформенной разработки в частности. В 2009 вышел iPhone 3gs, который позволял запускать сторонние приложения из AppStore. Впервые эта возможность появилась в годом ранее в iPhone 3g, но по настоящему массовым, «народным» айфоном стал 3gs. Опять же, годом ранее, в сентябре 2008 Android был представлен публике и в 2009 многие производители телефонов стали пробовать Android для своих новый моделей телефонов. Весной 2009 компания Nitobi представила PhoneGap — новый фреймворк для создания кроссплатформенных приложений на основе HTML5, CSS и JS. В том же году, в сентябре компания Ximian выпустила MonoTouch, который позволял писать iOS приложения с использованием Mono и C#. В том же 2009, в декабре, компания Rovio Entertainment выпустила игру для iOS и, на минуточку, Maemo, которая во многом положила начало индустрии мобильных игр — Angry Birds. Последний пример здесь не случайно.
Читать полностью »
Garbage Collector. Полный курс + перевод из BOTR
2019-09-17 в 19:25, admin, рубрики: .net, C#, clr, clrium, gc, Блог компании Семинары Станислава Сидристого, ПрограммированиеВ данной статье вы встретите сразу два источника информации:
- Полный курс по работе Garbage Collector на русском языке: CLRium #6 (текущий семинар здесь)
- Перевод статьи из BOTR "Устройство сборщика мусора" от Маони Стевенс.

