Перейти к основному содержимому

10 записей с тегом "Garbage Collection"

Посмотреть все теги

· 7 мин. чтения

1. Обзор

В этом кратком руководстве мы продемонстрируем основы различных реализаций сборки мусора (GC) JVM . Затем мы узнаем, как включить определенный тип сборки мусора в наших приложениях.

2. Краткое введение в сборку мусора

Учитывая название, кажется, что сборка мусора занимается поиском и удалением мусора из памяти. Однако на самом деле сборка мусора отслеживает каждый объект, доступный в пространстве кучи JVM, и удаляет неиспользуемые.

По сути, GC работает в два простых шага, известных как Mark and Sweep:

· 3 мин. чтения

1. Введение

В Java 11 появился сборщик мусора No-Op под названием Epsilon, который обещает наименьшие возможные накладные расходы на сборку мусора .

В этом кратком руководстве мы рассмотрим, как работает Epsilon, и упомянем распространенные варианты использования.

2. Быстрый практический опыт

Давайте начнем с того, что запачкаем руки и попробуем Epsilon GC!

· 3 мин. чтения

1. Обзор

В этом уроке мы узнаем, что такое корни сборщика мусора (корни GC). Кроме того, мы опишем типы корней GC. После этого мы покажем разницу между корнями GC и живыми объектами.

2. Определение корня GC

Давайте сначала определим, что такое корни GC. Корень GC — это термин, используемый в контексте сборки мусора в Java. Это специальные объекты для сборщика мусора. Как следует из названия, корни GC являются отправными точками для процессов сборщика мусора. Как правило, все объекты, на которые прямо или косвенно ссылаются из корня сборщика мусора, не удаляются сборщиком мусора.

3. Типы корней GC

· 5 мин. чтения

1. Обзор

В дополнение к типичным утилитам разработки, таким как компилятор и среда выполнения, каждый выпуск JDK поставляется с множеством других инструментов. Некоторые из этих инструментов могут помочь нам получить ценную информацию о наших запущенных приложениях.

В этой статье мы увидим, как мы можем использовать такие инструменты, чтобы узнать больше об алгоритме GC, используемом конкретным экземпляром JVM.

2. Образец заявления

В этой статье мы будем использовать очень простое приложение:

· 7 мин. чтения

1. Введение

JVM поставляется с различными вариантами сборки мусора для поддержки различных вариантов развертывания. Благодаря этому мы получаем гибкость в выборе того , какой сборщик мусора использовать для нашего приложения.

По умолчанию JVM выбирает наиболее подходящий сборщик мусора на основе класса хост-компьютера. Однако иногда наше приложение сталкивается с серьезными узкими местами, связанными с GC, требующими большего контроля над используемым алгоритмом. Вопрос в том, «как можно выбрать алгоритм GC?»

В этой статье мы попытаемся ответить на этот вопрос.

2. Что такое GC?

· 10 мин. чтения

1. Введение

Сегодня приложения нередко обслуживают тысячи или даже миллионы пользователей одновременно. Такие приложения требуют огромных объемов памяти. Однако управление всей этой памятью может легко повлиять на производительность приложения.

Чтобы решить эту проблему, в Java 11 был представлен сборщик мусора Z (ZGC) в качестве экспериментальной реализации сборщика мусора (GC).

В этом руководстве мы увидим, как ZGC удается поддерживать малое время паузы даже на кучах размером в несколько терабайт .

2. Основные понятия

· 3 мин. чтения

1. Обзор

Сборка мусора — это чудо языка программирования Java, предоставляющее нам автоматическое управление памятью. Сборка мусора скрывает детали необходимости ручного выделения и освобождения памяти. Хотя этот механизм является фантастическим, иногда он работает не так, как нам хотелось бы. В этом руководстве мы рассмотрим параметры ведения журнала Java для статистики сборки мусора и узнаем, как перенаправить эту статистику в файл .

2. Флаги ведения журнала сборщика мусора в Java 8 и более ранних версиях

Во-первых, давайте рассмотрим флаги JVM, связанные с ведением журнала GC в версиях Java до Java 9.

2.1. -XX:+ПечатьГК

· 4 мин. чтения

1. Обзор

В этой быстрой статье мы увидим, как JVM обеспечивает сбор недостижимых, но циклических ссылок.

Во-первых, мы рассмотрим различные типы алгоритмов GC. После этого мы увидим, как циклические ссылки обрабатываются в JVM.

Также стоит отметить, что GC не является частью спецификации JVM и оставлен на усмотрение разработчика . Следовательно, каждая реализация JVM может иметь разные стратегии GC или вообще не иметь их.

В этой статье мы сосредоточимся на одной конкретной реализации JVM: HotSpot JVM. Мы также можем использовать термины JVM и HotSpot JVM взаимозаменяемо на протяжении всей статьи.

2. Подсчет ссылок

· 10 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим, как включить подробную сборку мусора в приложении Java . Мы начнем с того, что представим, что такое подробная сборка мусора и почему она может быть полезна.

Далее мы рассмотрим несколько разных примеров и узнаем о различных доступных параметрах конфигурации. Кроме того, мы также сосредоточимся на том, как интерпретировать выходные данные наших подробных журналов.

Чтобы узнать больше о сборке мусора (GC) и различных доступных реализациях, ознакомьтесь с нашей статьей о сборщиках мусора Java .

2. Краткое введение в подробную сборку мусора

· 9 мин. чтения

1. Введение

В этом руководстве мы рассмотрим основные проблемы, связанные с управлением памятью в Java, и необходимость постоянного поиска лучших способов добиться этого. В первую очередь речь пойдет о новом экспериментальном сборщике мусора, представленном в Java, который называется Shenandoah, и о том, как он сравнивается с другими сборщиками мусора.

2. Понимание проблем при сборке мусора

Сборщик мусора — это форма автоматического управления памятью, при которой среда выполнения, такая как JVM, управляет выделением и освобождением памяти для пользовательских программ, работающих на ней. Существует несколько алгоритмов реализации сборщика мусора. К ним относятся подсчет ссылок, маркировка-очистка, маркировка-сжатие и копирование.

2.1. Соображения для сборщика мусора