Сводка прошлого десятилетия сборки "мусора"? [закрытый]

11
задан Cody Gray 9 September 2017 в 05:23
поделиться

3 ответа

Насколько я знаю, большинство достижений в области методов сборки мусора за последнее десятилетие были "практическими": алгоритмы были известны, но была проведена значительная настройка с учетом многоядерных систем и наблюдаемых моделей использования. Значительная часть этих исследований была проведена Sun и IBM в контексте Java (поразительно, что большинство анализов шаблонов использования, представленных в книге Джонса и Линса, посвящены Lisp и его односвязным спискам; в настоящее время в статьях говорится о Java). Алгоритм G1 от Sun построен на старых идеях, о которых говорится в книге Jones & Lins - но люди в Sun (теперь Oracle) упорно работали, чтобы выяснить, какая комбинация наиболее эффективна.

Было также много исследований по распределенной сборке мусора - как GC-управлять объектами данных, которые разбросаны по разным системам, в обычных сложных условиях распределенных вычислений: сеть медленная, узлы могут быть не эквивалентны друг другу, некоторые узлы могут выйти из строя. Общий вывод, похоже, заключается в том, что это не работает (было гораздо больше исследований, чем выводов). Ограниченные версии с подсчетом ссылок (для ссылок на объекты, расположенные в другой системе) были реализованы (например, в RMI в Java) и, похоже, работают в контекстах, где нет цикла ссылок между узлами.

1
ответ дан 3 December 2019 в 11:51
поделиться

GC Улучшения в JVM:

G1 JVM, кажется, вносит некоторые новые улучшения в таблицу (по крайней мере, для JVM)

G1 - это GC «серверного типа» и имеет следующие атрибуты.

Параллелизм и параллелизм. G1 берет преимущество параллелизма, что существует сегодня в оборудовании. Он использует все доступные процессоры (ядра, оборудование потоки и т. д.), чтобы ускорить его "Stop-the-world" приостанавливается, когда потоки Java приложения остановлены чтобы включить сборщик мусора. Это тоже работает одновременно с запущенными потоками Java минимизировать операции с кучей во время пауз Stop-the-world.

Поколения. Как и другая точка доступа GC, G1 является поколенческим, то есть лечит недавно выделенных (он же молодой) предметы и предметы, которые жили с некоторых пор (он же старый) иначе. Он концентрирует сборку мусора активность на молодых объектах, как они есть те, которые, скорее всего, будут вторичный, при посещении старых объекты нечасто. Для большинства Java приложения, мусор поколений сбор имеет большую эффективность преимущества перед альтернативными схемами.

Уплотнение. В отличие от CMS, G1 выполняет уплотнение кучи с течением времени. Уплотнение устраняет потенциальную фрагментацию проблемы для обеспечения плавного и стабильная длительная работа.

Предсказуемость. Ожидается, что G1 будет предсказуемее, чем CMS.Это во многом за счет устранения проблемы фрагментации, которые могут отрицательно влияет на паузу остановки мира раз в CMS. Кроме того, G1 имеет модель прогнозирования паузы, которая во многих ситуаций, позволяет часто встречаться (или редко превышают) время паузы цель.

G1 Link

HotSpot 6 Кажется, есть множество сборщиков мусора , из которых вы можете выбирать.

3
ответ дан 3 December 2019 в 11:51
поделиться

Это то, что я встречал раньше и вспомнил только сейчас:

FPGA-Aware Garbage Collection в Java

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

Ссылка на документ в формате PDF

0
ответ дан 3 December 2019 в 11:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: