2012-01-05 6 views
1

Перезапуск вашего сервера (сервера) во время разработки может потреблять значительное количество времени. Народ zeroturnaround понял, что это и создал JRebel, который имеет довольно список впечатляющих особенностей:Есть ли у jvms отличия в настройках hotswapping?

http://zeroturnaround.com/jrebel/features/

горячей замена на Sun JVM имеет долгую историю:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4910812

Так, кажется, все Thats поддерживается Сегодня jvm hotswap - «Изменения в телах методов».

Является ли это единственной функцией hotswap, которую имеют все jvms, или jvms отличаются функциями hotswapping?

+0

взглянуть на этот вопрос - http://stackoverflow.com/questions/1566534/open-source-alternative-to-javarebel – Manish

ответ

1

Основные JVM отличаются тем, что они позволяют hotswap для кода в реальном времени. например во время отладки и байтового кода. Инструментарий загруженных классов. AFAIK, большинство серверов приложений фактически выгружают загрузчик классов и перезагружают весь код, который является грубой горячей заменой и работает одинаково на всех основных JVM.

Лично я попытался бы убедиться, что вы можете протестировать большую часть своего кода в модульных тестах, которые занимают мало времени и могут перезапустить службу под разработку в считанные секунды. (Это позволяет избежать проблемы)

+0

Я отдаю себе отчет в коллекции Загрузчик классов/мусора на основе серверов приложений подход предоставлять. Тем не менее, написание блок-тестов - совершенно другая история. Я особенно заинтересован в горячих функциях, но спасибо за ответ в любом случае. –

+0

Могу сказать, что есть два типа горячей замены. Обновление/замена приложения во время работы сервера и обновление кода в запущенном приложении. Это зависит от вашего поведения JVM. –

0

Вы можете использовать TCK (комплект совместимости технологий) для Java, чтобы определить, какой контракт должен соответствовать JVM, чтобы быть сертифицированным как совместимый с Java.

http://jcp.org/en/resources/tdk