And*_*Eve 10 java cpu performance
Java是一种制作精良的OO语言,但我注意到的第一件事是它有多慢(与C++相比).这可能是因为它必须通过另一层转换(VM)而不是直接在CPU的本机微码中运行.
我的问题:您是否知道在不需要软件实现的VM的情况下创建Java本地运行Java的任何尝试?
ska*_*man 18
Sun 大约10年前设计了picoJava处理器,但它从来没有去过任何地方 - 当时没有它的市场,而现代虚拟机使这个概念毫无意义.
然后是刚刚起步的ARM Jazelle架构.
到目前为止,我发现这个难题的唯一参考是以下文章:
http://www.theserverside.com/discussions/thread.tss?thread_id=59958
虽然我最初有兴趣首先知道是否有Java-CPU以及它们是什么,但这个帖子揭示了为什么我没有听说过任何内容(直到我在这里阅读了学到的回复).Alex Besogonov最后的评论似乎是最好的解释:
Java字节码不适合在真实硬件上运行.它是基于堆栈的,因此流水线操作无法实现.理论上,人们可以从基于堆栈的机器到基于寄存器的机器进行实时转换,但它需要大量的晶体管.
所以实际上,JIT编译Java字节码然后在公共CPU上运行它总是更有效.对于低功耗设备有一个例外JVM,其中硬件JVM的速度不是问题(记住Forth CPU).
当然,硬件仍然可以提供很少的功能来加速JVM.像硬件辅助转发指针一样,它允许创建快速实时压缩无间隙GC(我假设Azul硬件有这种支持).
这很有趣.谢谢大家的答案.
Azul Systems从头开始设计系统(运行大量服务)Java,包括硬件辅助垃圾收集.
还有GCJ用于将Java编译为本机代码,尽管它不是Java的完整实现.