garbage collector

  • ХабрахабрФото Утечки памяти, которые не утечки

    Утечки памяти, которые не утечки

    Статью я захотел написать после работы над одним конкретным багом, который со всех точек зрения напоминал классическую утечку памяти, но на практике оказался чем то совершенно другим. Я нигде не встречал описание такого поведения и поэтому решил этой информацией поделиться. В один прекрасный день боевое сопровождение приходит с ужасной проблемой — память в контейнерах Node.js течет, сервисы падают с OOM…

    Читать далее »
  • ХабрахабрФото Управление временем жизни объектов: почему это важно и почему для этого пришлось создать новый язык «Аргентум»

    Управление временем жизни объектов: почему это важно и почему для этого пришлось создать новый язык «Аргентум»

    В основе любого современного языка программирования лежит какая-то ссылочная модель, описывающая структуры данных которыми будут оперировать приложения. Она определяет как объекты ссылаются друг на друга, в какой момент объект можно удалить, когда и как объект можно изменять. Status Quo Большинство современных языков программирования строятся на одной из трех ссылочных моделей: Первая категория это языки с ручным управлением временем жизни объектов.…

    Читать далее »
  • ХабрахабрФото Управление памятью в PHP. Сборка мусора, слабые ссылки и прочая челядь

    Управление памятью в PHP. Сборка мусора, слабые ссылки и прочая челядь

    Содержание Введенние Zval Циклические ссылки Сборщик мусора Алгоритм работы сборщика мусора Смотрим глазами Слабые ссылки Бонус-трэк: WeakMap Заключение Введенние В PHP память для всех наших переменных выделяется динамически и совершенно незаметно для программиста. Каждый раз, когда вы что-то записываете в переменную - вы увеличиваете потребление памяти. И обычно вы только это и делаете - говорите PHP: дай, дай, ещё дай.…

    Читать далее »
  • ХабрахабрФото Пародия на замыкания

    Пародия на замыкания

    В предыдущих сериях Нет, не про наскучившие области видимости и прочую чепуху, пренепременно встречаемую по первым ссылкам в интернете. А про то, как, казалось бы, абсолютно корректным, но неаккуратным замыканием можно, как бы лучше выразиться… отстрелить себе ногу. Художественное отступление, шутка на текущую тему. Для того, чтобы узнать самое интересное, читать текст под катом совершенно не обязательно. На самом краю…

    Читать далее »
  • ХабрахабрФото Сказка про Method as Parameter

    Сказка про Method as Parameter

    Привет. Меня зовут Саша Денисов, я инженер в Контуре.  Я веду блог во внутренних ресурсах компании и хочу поделиться им с вами. Это серия преимущественно развлекательных статей на инженерные темы, которые не претендуют на научность и полноту знаний в них. Каждая следующая статья зарождается в моменте, когда при решении очередной рабочей задачи в Контуре я (или мои близкие коллеги) сталкиваюсь с…

    Читать далее »
  • ХабрахабрФото Дюк, вынеси мусор! — 6. Shenandoah GC

    Дюк, вынеси мусор! — 6. Shenandoah GC

    Несмотря на то, что мы уже успели достаточно подробно рассмотреть целых шесть сборщиков мусора (Serial, Parallel, CMS, G1, ZGC, Epsilon), у OpenJDK еще есть, что нам предложить. Эта статья посвящена Shenandoah, тому самому сборщику, "который смог" (с таким слоганом он обычно подается). Действительно ли он сможет в вашем конкретном случае, и если сможет, то насколько хорошо, определить предстоит только вам…

    Читать далее »
  • ХабрахабрФото Дюк, вынеси мусор! — 5. Epsilon GC

    Дюк, вынеси мусор! — 5. Epsilon GC

    Сборщики мусора из OpenJDK, которые мы успели рассмотреть к этому моменту (Serial и Parallel, CMS и G1, ZGC), были нацелены на как можно более быструю и эффективную сборку мусора, для чего использовали техники различной степени сложности и изобретательности. Это вполне ожидаемо, ведь исходя из названия, борьба с мусором — это их основная обязанность. Но сегодня у нас на рассмотрении сборщик,…

    Читать далее »
  • ХабрахабрФото Дюк, вынеси мусор! — Часть 4

    Дюк, вынеси мусор! — Часть 4

    Зачем еще один? Мы уже успели рассмотреть четыре различных сборщика мусора, разработанных для разных целей, разных профилей нагрузки, разного железа. Что же такого особенного хотели предложить разработчики ZGC, чего мы еще не встречали? Официальное описание говорит нам о том, что при его проектировании ставились следующие цели: Поддерживать паузы STW на уровне меньше одной миллисекунды. Сделать так, чтобы паузы не увеличивались…

    Читать далее »
  • ХабрахабрФото Возможен ли быстрый Garbage collector на С++?

    Возможен ли быстрый Garbage collector на С++?

    Немного теории Не буду долго рассусоливать о том, что такое сборщик мусора и для чего он нужен (на эту тему уже есть достаточно статей). Но хочу отметить несколько важных деталей. Сборщик мусора - один из способов решения проблемы контроля памяти. Основное отличие от "умных" указателей с++ заключается в том, что подсчет ссылок на объекты и дальнейшее решение о высвобождении памяти…

    Читать далее »
  • ХабрахабрФото Предотвращаем утечки памяти в Go, ч. 2. Особенности рантайма

    Предотвращаем утечки памяти в Go, ч. 2. Особенности рантайма

    Мы продолжаем наш рассказ о причинах повышенного потребления памяти в языке Go. В предыдущей статье мы детально разобрали ошибки бизнес-логики приложения, которые могут привести к утечкам памяти. Сегодня же сосредоточимся на особенностях рантайма языка Go. Привет, Хабр! Меня зовут Виталий Исаев, я занимаюсь бэкенд-разработкой в компании МойОфис. При отладке утечек памяти в Go у программиста в какой-то момент может возникнуть…

    Читать далее »


Кнопка «Наверх»