Производительность Java с очень большими суммами RAM

это может использоваться внутри некоторого метода или конструктора.

Возвращает ссылку на текущий объект.

19
задан sanity 5 December 2008 в 14:07
поделиться

8 ответов

На JVM Sun можно использовать опцию-XX:UseConcMarkSweepGC, чтобы включить Параллельную метку и развернуть Коллектор, который избежит "остановки мировые" фазы алгоритма GC по умолчанию почти полностью, за счет немного больше служебного.

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

7
ответ дан 30 November 2019 в 05:13
поделиться

Вопрос: Вы хотите работать в рамках единственного процесса (JVM) или нет? Если Вы делаете, то Вы собираетесь иметь проблему. Обратитесь к Настраивающиеся виртуальные машины Java , Руководство пользователя Когерентности Oracle и подобная документация. Эмпирическое правило, которым я действовал, стараются избегать "кучи", больше, чем 1 ГБ. Принимая во внимание, что 512MB-1GB полный GC мог бы взять меньше, чем секунда. 2-4GB полный GC мог потенциально занять 5 секунд или дольше. Obvioiusly это зависит от многих факторов, но мораль истории - то, что GC наверху не масштабируется линейно и после того как Вы входите в одну вторую производительность диапазона затем, ухудшается быстро.

4
ответ дан 30 November 2019 в 05:13
поделиться

JVM Sun позволяет Вам настраивать и оптимизировать heck из сборки "мусора", но это - наука к себе: http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html

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

3
ответ дан 30 November 2019 в 05:13
поделиться

С тех пор 5.0 Горячая точка использование JVM понятие знают как Ergonomics, чтобы попытаться оптимизировать использование памяти. Это основано на больше, чем просто чистый доступный объем памяти и размеры "кучи" эффектов, размеры поколения и алгоритмы сборки "мусора".

Запускаются при наличии чтения этого, которое объясняет Ergonomics и больше:

http://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf

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

http://www.briangoetz.com/pubs.html

3
ответ дан 30 November 2019 в 05:13
поделиться

Это нисколько не отвечает на Ваш вопрос, но если Вы планируете, действительно развертывают огромное приложение Java, Вы могли бы интересоваться изучением устройства Azul Systems . Они говорят, чтобы смочь собрать "мусор", не создавая паузу в приложении до единственной "кучи" на 670 ГБ.

2
ответ дан 30 November 2019 в 05:13
поделиться

Вы могли бы хотеть рассмотреть выполнение виртуального Терракота кластер на этой машине.

1
ответ дан 30 November 2019 в 05:13
поделиться

Единственные люди, которые могут действительно сказать Вам, являются SGI. Супер компьютеры не ведут себя как обычные серверы, только более крупные.

Однако я нашел, что Java работает лучше всего, когда память локальна для процессоров, получающих доступ к нему.Примечание: GC должен быть в состоянии обойти целую память вплотную. Это означает, что не масштабируется хорошо, если у Вас есть дизайн, который похож на большое количество компьютеров, склеенных, который может иметь место здесь. Размер модуля памяти составляет 32 ГБ, таким образом, можно получить лучшую производительность при ограничении JVM для удобного вписывания в этот размер.

0
ответ дан 30 November 2019 в 05:13
поделиться

Конечно, ответ относительно того, как попытка GC работать, "кто заботится?" ;-)

-8
ответ дан 30 November 2019 в 05:13
поделиться
Другие вопросы по тегам:

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