Domanda

Di recente ho imparato a conoscere gli scenari che richiedono in fase di riscaldamento un app (con il requisito throughput elevato) prima di iniziare a servire le richieste reali. La logica dietro questa era di permettere JIT per fare la sua magia prestazioni!

Si tratta di una norma per applicazioni Java o questo è generalmente fatto per la memoria applicazioni (footprint) pesanti?

È stato utile?

Soluzione

Se si sta parlando di un elevato traffico webapp / sito web allora JIT è un problema molto minore. Il problema più grande è in fase di riscaldamento (popolamento) tutti i livelli di cache avrete bisogno di avere. Es EHCache regioni che vengono popolate da sospensione . Questo perché le operazioni di IO correlati sono ordini di grandezza più lenta di tutto ciò che accade all'interno della CPU (cioè a meno che si sta calcolando i frattali:)

Altri suggerimenti

La domanda è, quando si vorrebbe andare fuori strada per fare questo?

Se si tira fuori una webapp, e viene immediatamente vivere, allora, mentre si sta "scaldando", si sta aggiungendo un carico extra, che è controproducente. Simile è vero quando un'applicazione desktop si avvia. Nessun punto nel riscaldamento se l'utente sta per iniziare subito ad usarlo. O peggio, non permettendo all'utente di interagire mentre si sta riscaldando l'applicazione.

Se si tira fuori una webapp, e si prova il distribuzione prima si punta il bilanciamento del carico ad esso, allora hai già riscaldato come un risultato lato.

Oltre a risposta , mi viene in mente di alcune altre questioni che richiedono di warm-up:

  • Oggetti instanziazione (lazy loading, single, ecc.);
  • allocazione Heap (se il vostro Xms è più piccolo della tua Xmx).

Immagino che il sistema operativo stesso sintonizza al comportamento di un'applicazione e, in modo che le chiamate del sistema operativo può essere influenzato anche da un periodo di riscaldamento.

La maggior parte di quanto sopra (popolazione cache, oggetto di inizializzazione) non sono specifiche di Java.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top