La única referencia que encontré hasta ahora a este dilema es el siguiente artículo:
http://www.theserverside.com/discussions/thread.tss?thread_id=59958
Mientras estaba inicialmente interesado en saber primero si hay Java-CPU y lo que son, cobertizos de este hilo algo de luz en por qué No he oído hablar de ninguno (hasta que lea las respuestas aprendidas aquí). El último comentario, por Alex Besogonov, parece ser la mejor explicación:
código de bytes de Java no es apto para ser ejecutado en el hardware real. Está basado en la pila, por lo que la canalización sale por la ventana. En la teoría , se puede hacer sobre la marcha traducción de la máquina basada en la pila a basada en registro, pero va a requerir MUCHOS transistores.
Entonces, en realidad, SIEMPRE es más efectivo para JIT-compilar el bytecode de Java y luego ejecutarlo en una CPU común. Hay es una excepción JVM para dispositivos de baja potencia donde la velocidad del hardware JVM no es un problema (recuerde Forth CPUs).
Por supuesto, el hardware todavía puede proporcionar algunas características para acelerar las JVM. Como punteros de reenvío asistidos por hardware que permiten crear en tiempo real en tiempo real compactación sin pausa GC (supongo que el hardware Azul tiene esta compatibilidad).
Esto es muy interesante. Gracias a todos por sus respuestas o comentarios.
Personas (con razón) quejándose de "Java es lento" quejándose en N ... (N-1) ...(Además, una CPU de propósito especial que ejecute bytecode de Java muy probablemente termine mucho más lento que una CPU de escritorio moderna que ejecuta una JVM normal). – delnan
Bueno, el ensamblaje es aún más rápido, pero el tiempo que gana en rendimiento se convierte en tiempo de desarrollo (y multiplicado por 100 factores, tal vez ...) – digEmAll
@skaffman Por lento quise decir más lento que un programa comparable en C++. Intenta ejecutar Eclipse (que AFAIK fue escrito en Java) dentro de una VMWare VM y ve a qué me refiero. –