我们是否可以在硬件中实现一个java解释器,以本机方式执行java字节码?

我们是否可以在硬件中实现一个java解释器,以本机方式执行java字节码?,java,jvm,virtual,interpreter,jit,Java,Jvm,Virtual,Interpreter,Jit,若我们在硬件上实现java解释器,那个么我们如何实现java字节码的体系结构中立性。。。 java是否使用JIT(即时解释器)? 这一切与操作系统的虚拟机概念和java虚拟机(JVM)有何关系 在硬件中实现JVM忽略了运行托管代码的优势。那么它与任何其他本机代码有什么不同呢。是的,平台中立性也受到了阻碍。不管怎样,有这样的实现,看看aJile系列处理器和ARM的Jazelle。但这些都是针对嵌入式平台的 Sun的编译器HotSpot使用JIT。我个人没有使用过其他技术,但它应该是一种高度使用的技

若我们在硬件上实现java解释器,那个么我们如何实现java字节码的体系结构中立性。。。 java是否使用JIT(即时解释器)? 这一切与操作系统的虚拟机概念和java虚拟机(JVM)有何关系
  • 在硬件中实现JVM忽略了运行托管代码的优势。那么它与任何其他本机代码有什么不同呢。是的,平台中立性也受到了阻碍。不管怎样,有这样的实现,看看aJile系列处理器和ARM的Jazelle。但这些都是针对嵌入式平台的
  • Sun的编译器HotSpot使用JIT。我个人没有使用过其他技术,但它应该是一种高度使用的技术
  • JVM可以被认为是一个资源有限的VM,只针对一个特定的平台(Java字节码)

  • 是的,你可以。尽管这看起来像是停留在规范阶段(或被放弃),但它允许Java字节码的本机执行。ARM处理器也是如此

    考虑到硬件将直接执行字节码,所有优化也必须在硬件中完成。不需要JIT,因为处理器将直接执行字节码。毕竟,任何硬件实现都会涉及到实现中定义的JVM模型。可以执行的优化将在硬件优化的线路上——指令流水线、缓存的使用等


    硬件中立性并没有丧失,因为在硬件实现上执行的字节码也将继续在软件实现上工作。字节码标准允许Java与硬件无关。

    Java系统已经有几种硬件实现(即可以执行字节码的CPU),但它们尚未成为主流。这很可能是因为软件实现的性能与CPU的速度越来越快一样好,甚至更好

    当您更仔细地研究时会发现,JVM实现的细节并不是那么重要(而且差别很大),但它们都执行JVM-java字节码的机器语言。如果您停留在Java世界中,不使用“本机”链接,那么无论您选择什么实现,您都应该可以


    这家公司以提供针对Java程序进行调优的服务器系统为生,您可能会感兴趣:

    是的,有几种硬件Java实现。然而,它们并不总是比在更通用的硅上运行的软件表现得更好


    Mark Lam已经写过这方面的文章。

    这意味着java的虚拟化(或者我们可以称之为jre?)不同于操作系统的虚拟化。。。我说得对吗?据我所知,虚拟化就是用软件模拟硬件。来宾应用程序(java应用程序或操作系统)将VM视为另一台计算机,并使用本机代码与之交互。另一方面,虚拟机理解本机代码,解释应用程序请求的内容,然后自行执行操作,前提是有必要的授权和权限。因此,根据这个定义,java应用程序或操作系统的虚拟化是相似的,虚拟化指的是将一台完整的物理机器更改为在另一台物理机器上运行的程序。我希望看到更多的精力投入到处理器上,包括硬件GC协助。例如,感知GC的缓存体系结构可以降低通常与并发垃圾收集相关的性能开销,并且可以消除几乎所有的暂停;只有当一代中的新堆的填充速度快于该代中前一个堆的填充速度时,或者如果试图写入正在移动的对象(在后一种情况下,移动完成后即可恢复执行),才需要暂停。其中一个潜在的问题是,软件优化可以在中“修补”。硬件不能。即使执行发生在硬件中,也不会妨碍硬件JVM进行它想要的任何优化。这台机器有RAM和一切:)实际上,软件不可能比硬件快。如果硬件速度较慢,则意味着它尚未开发。例如,如果Hotspot JIT比Java的某些硬件实现快,您可以将Hotspot JIT移到硬件上,这肯定比现有的要快。但无论如何,我怀疑JIT是在硬件中实现JVM的最快方法@维内特:1。任何可以在软件中完成的事情都可以在硬件中完成。2.x86在硬件级别进行严格的优化。理论上,硬件不可能比软件慢,但在实践中,情况往往并非如此。虽然硬件是一成不变的,但软件会随着时间的推移而改进。实现列表:一个简单的问题是,一台设备必须具备什么配置才能运行jvm的软件版本?@好奇的人一定已经为该设备提供了jvm。然后,配置必须满足JVM的要求。2017年,CPU的速度不再越来越快。相反,软件JVM使用更多的内存来保存评测信息,JIT可以使用这些信息在重要的地方创建极其优化的机器代码。硬件实现通常没有该选项,因此无法进行尽可能多的优化。由于硬件相同,软件解决方案因此获胜。@Thorbjørnravandersen,软件的性能也一样好吗?不,真正的问题是java处理器的高昂成本。@Pacerier是的,软件以内存使用为代价表现得更好。很高兴指出“硬件中立性并没有丧失,因为