Secondo le informazioni che ho potuto raccogliere in ambiente di esecuzione NET e Java, la situazione attuale è segue:.NET runtime vs. Java Hotspot: .NET è una generazione indietro?
moderna Java VM sono in grado di eseguire ricompilazione continuo, che combinata con profilatura può produrre grandi prestazioni miglioramenti. Le JVM più anziane hanno utilizzato il JIT. maggiori informazioni in questo articolo: http://www.ibm.com/developerworks/library/j-jtp12214/ ed in particolare: Java theory and practice: Dynamic compilation and performance measurement
.NET utilizza JIT o NGEN per generare codice nativo, ma una volta che viene generato il codice nativo, senza ulteriori vengono eseguite (runtime) ottimizzazioni.
Benchmark a parte e con nessuna intenzione di intensificare guerre sante, questo significa che Java Hotspot VM è una generazione avanti di .Net. Queste tecnologie utilizzate in Java VM potranno finalmente trovare la sua strada in .NET runtime?
L'articolo collegato suggerisce che la ricompilazione dinamica potrebbe essere una buona cosa, ma che è difficile sapere con certezza, dal momento che la VM può scegliere di ri-ottimizzare senza preavviso. Senza una profilazione sensibile del codice, sembra un articolo di fede, poiché non vi è alcuna prova che "grandi miglioramenti delle prestazioni" si verifichino effettivamente. –
Sembra essere una tecnica efficiente per migliorare il dispendio di informazioni polimorfiche. Vedi anche: http://en.wikipedia.org/wiki/Adaptive_optimization e http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.199.3894&rep=rep1&type=pdf – Dan
Se quella tecnologia fosse un tale miglioramento rispetto al modello JIT/NJEN sono sicuro che Microsoft l'avrebbe implementato. La dissertazione è del 1994 e l'articolo IBM è del 2004. –