garbage collector
-
Хабрахабр
Утечки памяти, которые не утечки
Статью я захотел написать после работы над одним конкретным багом, который со всех точек зрения напоминал классическую утечку памяти, но на практике оказался чем то совершенно другим. Я нигде не встречал описание такого поведения и поэтому решил этой информацией поделиться. В один прекрасный день боевое сопровождение приходит с ужасной проблемой — память в контейнерах Node.js течет, сервисы падают с OOM…
Читать далее » -
Хабрахабр
Управление временем жизни объектов: почему это важно и почему для этого пришлось создать новый язык «Аргентум»
В основе любого современного языка программирования лежит какая-то ссылочная модель, описывающая структуры данных которыми будут оперировать приложения. Она определяет как объекты ссылаются друг на друга, в какой момент объект можно удалить, когда и как объект можно изменять. Status Quo Большинство современных языков программирования строятся на одной из трех ссылочных моделей: Первая категория это языки с ручным управлением временем жизни объектов.…
Читать далее » -
Хабрахабр
Управление памятью в PHP. Сборка мусора, слабые ссылки и прочая челядь
Содержание Введенние Zval Циклические ссылки Сборщик мусора Алгоритм работы сборщика мусора Смотрим глазами Слабые ссылки Бонус-трэк: WeakMap Заключение Введенние В PHP память для всех наших переменных выделяется динамически и совершенно незаметно для программиста. Каждый раз, когда вы что-то записываете в переменную - вы увеличиваете потребление памяти. И обычно вы только это и делаете - говорите PHP: дай, дай, ещё дай.…
Читать далее » -
Хабрахабр
Пародия на замыкания
В предыдущих сериях Нет, не про наскучившие области видимости и прочую чепуху, пренепременно встречаемую по первым ссылкам в интернете. А про то, как, казалось бы, абсолютно корректным, но неаккуратным замыканием можно, как бы лучше выразиться… отстрелить себе ногу. Художественное отступление, шутка на текущую тему. Для того, чтобы узнать самое интересное, читать текст под катом совершенно не обязательно. На самом краю…
Читать далее » -
Хабрахабр
Сказка про Method as Parameter
Привет. Меня зовут Саша Денисов, я инженер в Контуре. Я веду блог во внутренних ресурсах компании и хочу поделиться им с вами. Это серия преимущественно развлекательных статей на инженерные темы, которые не претендуют на научность и полноту знаний в них. Каждая следующая статья зарождается в моменте, когда при решении очередной рабочей задачи в Контуре я (или мои близкие коллеги) сталкиваюсь с…
Читать далее » -
Хабрахабр
Дюк, вынеси мусор! — 6. Shenandoah GC
Несмотря на то, что мы уже успели достаточно подробно рассмотреть целых шесть сборщиков мусора (Serial, Parallel, CMS, G1, ZGC, Epsilon), у OpenJDK еще есть, что нам предложить. Эта статья посвящена Shenandoah, тому самому сборщику, "который смог" (с таким слоганом он обычно подается). Действительно ли он сможет в вашем конкретном случае, и если сможет, то насколько хорошо, определить предстоит только вам…
Читать далее » -
Хабрахабр
Дюк, вынеси мусор! — 5. Epsilon GC
Сборщики мусора из OpenJDK, которые мы успели рассмотреть к этому моменту (Serial и Parallel, CMS и G1, ZGC), были нацелены на как можно более быструю и эффективную сборку мусора, для чего использовали техники различной степени сложности и изобретательности. Это вполне ожидаемо, ведь исходя из названия, борьба с мусором — это их основная обязанность. Но сегодня у нас на рассмотрении сборщик,…
Читать далее » -
Хабрахабр
Дюк, вынеси мусор! — Часть 4
Зачем еще один? Мы уже успели рассмотреть четыре различных сборщика мусора, разработанных для разных целей, разных профилей нагрузки, разного железа. Что же такого особенного хотели предложить разработчики ZGC, чего мы еще не встречали? Официальное описание говорит нам о том, что при его проектировании ставились следующие цели: Поддерживать паузы STW на уровне меньше одной миллисекунды. Сделать так, чтобы паузы не увеличивались…
Читать далее » -
Хабрахабр
Возможен ли быстрый Garbage collector на С++?
Немного теории Не буду долго рассусоливать о том, что такое сборщик мусора и для чего он нужен (на эту тему уже есть достаточно статей). Но хочу отметить несколько важных деталей. Сборщик мусора - один из способов решения проблемы контроля памяти. Основное отличие от "умных" указателей с++ заключается в том, что подсчет ссылок на объекты и дальнейшее решение о высвобождении памяти…
Читать далее » -
Хабрахабр
Предотвращаем утечки памяти в Go, ч. 2. Особенности рантайма
Мы продолжаем наш рассказ о причинах повышенного потребления памяти в языке Go. В предыдущей статье мы детально разобрали ошибки бизнес-логики приложения, которые могут привести к утечкам памяти. Сегодня же сосредоточимся на особенностях рантайма языка Go. Привет, Хабр! Меня зовут Виталий Исаев, я занимаюсь бэкенд-разработкой в компании МойОфис. При отладке утечек памяти в Go у программиста в какой-то момент может возникнуть…
Читать далее »