Сборка "мусора" Java G1 в производстве

Так как Java 7 собирается использовать новую сборку "мусора" G1, по умолчанию будет Java, который в состоянии обработать порядок величины большая "куча" без воображаемых "разрушительных" времен паузы GC? Кто-либо на самом деле реализовал G1 в производстве, каковы были Ваши события?

Для ярмарки единственного времени, я видел, что действительно длинные паузы GC находятся на очень большой "куче", намного больше, чем рабочая станция имела бы. Разъяснить мой вопрос; G1 откроет шлюз для "кучи" в сотнях ГБ? ТБ?

90
задан dogbane 21 May 2010 в 12:03
поделиться

3 ответа

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

Сборка мусора - это уже не простая сделка типа «Эй, это полно, давайте переместим все сразу и начнем заново» - это фантастически сложная многоуровневая фоновая многопоточная система. Он может выполнять большую часть своего обслуживания в фоновом режиме без каких-либо пауз, а также использует знания об ожидаемых шаблонах системы во время выполнения, чтобы помочь - например, если предположить, что большинство объектов умирает сразу после создания и т. Д.

Я бы сказал В будущих выпусках время паузы в сборке мусора будет улучшаться, а не ухудшаться.

РЕДАКТИРОВАТЬ:

при перечитывании мне пришло в голову, что я использую Java ежедневно - Eclipse, Azureus и разрабатываемые мной приложения, и прошло ДЛИННОЕ ВРЕМЯ с тех пор, как я увидел паузу. Небольшая пауза, но я имею в виду вообще любую паузу.

Я видел паузы, когда я щелкаю правой кнопкой мыши по проводнику Windows или (иногда) когда подключаю определенное USB-оборудование, но с Java - вообще нет.

У кого-то все еще проблема с GC?

34
ответ дан 24 November 2019 в 07:03
поделиться

Сборщик G1 снижает влияние полных коллекций. Если у вас есть приложение, в котором вы уже уменьшили потребность в полных коллекциях, сборщик Concurrent map Sweep так же хорош, и, по моему опыту, у него более короткое время незначительного сбора.

8
ответ дан 24 November 2019 в 07:03
поделиться

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

Миф о том, что G1 доступен только с платной поддержкой, — всего лишь миф. Sun, а теперь и Oracle разъяснили это на странице JDK.

4
ответ дан 24 November 2019 в 07:03
поделиться
Другие вопросы по тегам:

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