Recentemente ho partecipato a una discussione sull'efficienza di Java. Come ho ascoltato, molti argomenti contro Java erano che l'interpretazione è "molto dispendiosa in termini di tempo" e per questo anche i semplici programmi Java sono molto più lenti di quelli simili compilati direttamente sul codice macchina.Compilazione just-in-time - quando avviene effettivamente in Java?
Una risposta a ciò era che il codice Java viene spesso compilato direttamente sul codice macchina, se solo JVM calcola rende il programma più veloce di se fosse interpretato in un modo standard.
Le mie domande sono: quando JVM "decide" effettivamente di eseguire la compilazione just-in-time? Quali sono i criteri che rendono JIT più efficiente dell'interpretazione bytecode standard? Voglio dire, la compilazione richiede un po 'di tempo e, per quanto ho capito, tutto dovrebbe succedere quando il programma è già in esecuzione?
Riferimento: [Compilazione JIT] (http://en.wikipedia.org/wiki/Just-in-time_compilation) – Coffee