Подтвердить что ты не робот

Резюме последнего десятилетия сбора мусора?

Я читал книгу Джонса и Линса по сборке мусора, которая была опубликована в 1996 году.

Очевидно, что компьютерный мир с тех пор сильно изменился: многоядерные, чипы вне порядка с большими кэшами и даже большая основная память на рабочих столах. Мир также более или менее ориентирован на микроархитектуры x86 и ARM для большинства систем, ориентированных на потребителя.

Каковы наиболее значительные успехи с момента публикации семенной книги?

Я смотрю, в частности, на указатели на бумаги, алгоритмы, диссертации и т.д., представляя достижения как в теории, так и в практике сбора мусора.

4b9b3361

Ответ 1

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

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

Ответ 2

GC Advancements на JVM:

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

G1 является GC-сервером и имеет следующие атрибуты.

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

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

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

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

Ссылка G1

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

Ответ 3

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

FPGA-сборник мусора в Java

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

Ссылка на PDF-документ