2012-11-26 16 views
6

Was ist JVM Hot Swapping?JVM HOT Swapping

Viele Definitionen sagen, dass dieses Feature Code ermöglicht es on the fly während de-Lausch aktualisiert.

Und ein paar Einschränkungen wie Hot-Swapping wird nur auf die Aktualisierung Methodenrümpfe beschränkt, und zu versuchen, Methoden und Felder Klassen erfolgreich sein würde nicht hinzuzufügen.

Kann jemand dies mit Code erklären.

+0

Sie normalerweise tun es aus Ihren IDE beim Debuggen/Ihren Code aus dem IDE ausgeführt wird. Sie nehmen Änderungen an einem Teil Ihres Codes vor, tauschen ihn aus und starten das Debuggen/Debuggen mit dem neuen Code, ohne die Anwendung neu kompilieren oder neu starten zu müssen. – assylias

Antwort

11

Alles, was es bedeutet, dass Sie bestimmte Änderungen an Ihrem Code, während in der Mitte einer Debug-Sitzung zu machen, und haben diese Änderungen sofort wirksam, ohne die Anwendung neu starten zu müssen.

Dies kann eine sehr praktische Funktion in einigen Fällen sein. In der Regel sind Sie jedoch eingeschränkt, welche Arten von Codeänderungen in eine laufende Anwendung umgewandelt werden können. Die genaue Art der Einschränkungen hängt von Ihrer Toolchain ab.

+0

Wenn JRebel nicht verwendet wird, können Änderungen an der Klassenstruktur einschließlich einer Methodensignatur nicht im laufenden Betrieb ausgetauscht werden. Grundsätzlich funktioniert es nur, wenn man den Körper einer Methode ändert. – Gimby

+1

Dies bedeutet also, dass, wenn eine bestimmte Codeänderung ohne erneute Bereitstellung der Anwendung in Kraft tritt, bedeutet dies, dass dieser Teil des Codes hot-swapped wurde. –

+0

Wenn Hot-Swapping ausgeführt wird, sollte der Code kompiliert werden oder die Hot Sapping-Funktion selbst kompiliert den Code und Hot-Swaps. –