2015-10-27 2 views
0

У меня есть много сервисов в распределенном приложении, и все они работают с версией JKD 1.7 (обновление 45). Из этих служб у меня есть некоторые интенсивные службы памяти с кучей 4 ГБ ОЗУ с использованием алгоритма CMS GC. Я обнаружил, что существующие алгоритмы, включая CMS, неэффективны для интенсивных приложений с интенсивным генератором. Производительность этих служб ухудшается с помощью всплеска активности обмена сообщениями в произвольные интервалы времени.JDK 1.8 Сборщик мусора G1 алгоритм для классов, скомпилированных с версией JDK 1.7

Я прочитал много хорошего о JDK 1.8 G1 algorithm. Но я не могу обновить все сервисы до JDK 1.8 из-за ограничений некоторых сторонних технологий, которые еще не готовы к JDK 1.8.

Можно ли просто обновить время выполнения до версии JDK 1.8 в некоторых сервисах + настроить алгоритм G1 для GC, но по-прежнему использовать классы Java, скомпилированные с JDK 1.7 версии 45?

Примечание: У меня было более раннее обновление JDK 1.7 в службах с скомпилированными классами JDK 1.6. Но на этот раз я должен играть с алгоритмом GC и не уверен, как он ведет себя с скомпилированными классами JDK 1.7. Если кто-то из вас уже сделал, поделитесь своими входами.

ответ

3

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

+0

Спасибо за подтверждение. Одно небольшое сомнение: могу ли я использовать новые параметры JVM (удаление перментинга и т. Д.) С версией 1.8 ?. Я думаю, что ответ «ДА» из вашего ответа, но у него мало сомнений. Просто хочу перекрестно проверить один раз. –

+0

Конечно. Опять же, JVM не обрабатывает ваши классы по-разному в зависимости от того, с какой версией они были скомпилированы (за исключением того, что более низкие версии JVM не поддерживают классы более высокой версии, если явно не скомпилированы для более низкой версии). – Kayaman

Смежные вопросы