1

開発中に (サーバー) を再起動すると、かなりの時間がかかる可能性があります。zeroturnaround の人々はこれに気づき、非常に印象的な機能のリストを持つ jrebel を作成しました。

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

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

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

したがって、現在 jvm hotswap でサポートされているのは、「メソッド本体の変更」だけのようです。

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

4

2 に答える 2

1

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

個人的には、ほとんどのコードを単体テストでテストできるようにすることをお勧めします。単体テストはほとんど時間がかからず、開発中のサービスを数秒で再起動できます。(これにより問題が回避されます)

于 2012-01-05T11:05:14.790 に答える
0

Java の TCK (Technology Compatibility Kit) を使用して、Java 互換として認定されるために JVM が満たさなければならない契約を判断できます。

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

于 2012-01-05T11:12:30.987 に答える