Различаются ли jvms в функциях горячей замены? - PullRequest
1 голос
/ 05 января 2012

Перезагрузка вашего (сервера) во время разработки может занять значительное количество времени. Люди Zeroturnaround поняли это и создали Jrebel, который имеет довольно впечатляющий список функций:

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

Hotswap на Sun JVM имеет долгую историю:

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

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

Является ли это единственной функцией горячей замены, общей для всех jvms, или jvms отличаются функциями горячей замены?

Ответы [ 2 ]

1 голос
/ 05 января 2012

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

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

0 голосов
/ 05 января 2012

Вы можете использовать TCK (Technology Compatibility Kit) для Java, чтобы определить, с каким контрактом должны работать JVM, чтобы получить сертификат совместимости с Java.

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

...