2012-11-26 15 views
6

Che cos'è lo swap a caldo JVM?JVM HOT Swapping

Molte definizioni dicono che questa funzione consente al codice di essere aggiornato al volo durante il de-bugging.

E alcune restrizioni come lo scambio a caldo sono limitate all'aggiornamento solo dei corpi dei metodi e il tentativo di aggiungere metodi e campi alle classi non avrebbe avuto esito positivo.

Qualcuno può spiegare questo con il codice.

+0

Generalmente lo fai dall'IDE durante il debug/esecuzione del codice dall'IDE. Apportare modifiche a una parte del codice, sostituirlo a caldo e riprendere a eseguire/eseguire il debug con il nuovo codice senza dover ricompilare o riavviare l'applicazione. – assylias

risposta

11

Tutto ciò significa che è possibile apportare determinate modifiche al codice mentre si è nel mezzo di una sessione di debug e che tali modifiche abbiano effetto immediatamente, senza dover riavviare l'applicazione.

Questa funzione può essere molto utile in alcune circostanze. Tuttavia, in genere si è limitati a quali tipi di modifiche al codice possono essere sostituite da hotswapp in un'applicazione in esecuzione. La natura esatta delle restrizioni dipende dalla tua toolchain.

+0

Quando non si utilizza JRebel, qualsiasi tipo di modifica alla struttura della classe, inclusa una firma del metodo, non può essere sostituita a caldo. Fondamentalmente solo quando si cambia il corpo di un metodo funziona. – Gimby

+1

Ciò significa che se un certo cambio di codice diventa effettivo senza ridistribuire l'applicazione, significa che quella parte del codice è stata sostituita a caldo. –

+0

Per eseguire lo scambio a caldo nel caso in cui il codice venga compilato o la funzione di elaborazione a caldo compaia automaticamente il codice e gli hot-swap. –