2012-01-05 6 views
1

開発中に(サーバー)を再起動すると、かなりの時間がかかります。 zeroturnaroundの人がこれを実現し、機能のかなり印象的なリストがある作成jrebel:太陽のJVM上jvmsはホットスワップ機能が異なりますか?

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

ホットスワップには長い歴史があります。

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

だから、すべてのthatsがサポートさそうです今日のjvm hotswapでは、 "メソッド本体の変更"です。

これは、すべてのjvmsに共通するホットスワップ機能ですか、それともjswmsでホットスワップ機能が異なるのですか?

+0

はこの質問を見ている - http://stackoverflow.com/questions/1566534/open-source-alternative-to-javarebel – Manish

答えて

1

主要なJVMは、ライブコードのホットスワップが可能な点で異なります。例えばデバッグ中およびバイトコードロードされたクラスのインストルメンテーション。 AFAIKでは、ほとんどのアプリケーションサーバーが実際にクラスローダーをアンロードし、より粗いホットスワップであるすべてのコードをリロードし、すべての主要なJVMで同じように動作します。

個人的には、少し時間がかかり、開発中のサービスを数秒で再起動できる単体テストで、ほとんどのコードをテストできることを保証しようとします。

+0

私はクラスローダ/ガベージコレクションベースのアプローチのアプリケーションサーバーを認識してい提供する。しかし単体テストを書くことは全く別の話です。私は特にホットスワップ機能に興味がありますが、とにかく応答してくれてありがとう。 –

+0

私の主張には2種類のホットスワップがあります。サーバーの実行中にアプリケーションを更新/置換し、実行中のアプリケーションでコードを更新します。それは後でJVMの動作に依存します。 –

0

Java用のTCK(Technology Compatibility Kit)を使用して、JVMがJava互換と認定されるためにどのような契約が必要であるかを判断することができます。

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

関連する問題