Java é uma linguagem OO muito bem trabalhada, mas a primeira coisa que notei é como ela é lenta (em comparação com o C ++). Isto é provavelmente porque tem que passar por outra camada de tradução (a VM) em vez de correr diretamente no microcódigo nativo da CPU.
Minha pergunta: Você conhece alguma tentativa de criar CPUs específicas para Java que executem Java nativamente sem precisar da VM implementada por software?
A Sun projetou o processador picoJava há cerca de 10 anos, mas nunca chegou a lugar algum – não havia mercado para ele na época, e as VMs modernas tornam o conceito bastante sem sentido.
Depois, há a arquitetura ARM Jazelle .
A única referência que encontrei até agora para este enigma é o seguinte artigo:
http://www.theserverside.com/discussions/thread.tss?thread_id=59958
Enquanto eu estava inicialmente interessado em saber primeiro se há Java-CPU e o que eles são, esta discussão lança alguma luz sobre porque eu não ouvi falar de nenhum (até que eu li as respostas aprendidas aqui). O último comentário, de Alex Besogonov, parece ser a melhor explicação:
O bytecode de Java NÃO é adequado para ser executado em hardware real. É baseado em pilha, então o pipelining sai pela janela. Em teoria, pode-se fazer tradução instantânea de máquinas baseadas em pilha para máquinas baseadas em registros, mas isso exigirá MUITOS transistores.
Então, na realidade, é sempre mais efetivo compilar o bytecode Java em JIT e depois executá-lo em uma CPU comum. Há uma exceção de JVMs para dispositivos de baixo consumo em que a velocidade da JVM de hardware não é um problema (lembre-se das CPUs da Forth).
Obviamente, o hardware ainda pode fornecer alguns resources para acelerar as JVMs. Como os pointers de encaminhamento auxiliados por hardware que permitem criar um GC rápido e sem compactação em tempo real (suponho que o hardware da Azul tenha esse suporte).
Isto é muito interessante. Obrigado a todos por suas respostas.
A Azul Systems projeta sistemas desde o início (com serviços massivos em execução) em Java, incluindo a garbage collection assistida por hardware.
Há também o GCJ para compilar o Java ao código nativo, embora não seja uma implementação completa do Java.
Você pode querer tentar o JOP
É open source e você pode experimentá-lo em seu próprio hardware.