为什么不是更多的Java软件本地编译?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我意识到字节码与本机代码(便携性)的好处

但是,如果您始终知道您的代码将在x86架构上运行,那么为何不编译x86并获得性能优势?

请注意,我假设本地代码编译的性能有所提高。有些人回答说实际上可能没有收益,这对我来说是新闻。

提问于
用户回答回答于

因为性能增益(如果有的话)不值得麻烦。

此外,垃圾收集对于性能非常重要。GCJ说,有可能JVM的GC比嵌入编译可执行文件的GC要好。

即时编译甚至可以带来更好的性能,因为JIT具有在运行时可用于优化编译比编译时,编译器的更多信息。请参阅JIT上的维基百科页面。

用户回答回答于

“Solaris”是一种操作系统,而不是CPU架构。安装在实际机器上的JVM将编译为本机CPU指令。Solaris可以是SPARC,x86或x86-64体系结构。

此外,JIT编译器可以根据您拥有的实际CPU系列,进行特定于处理器的优化。例如,Intel CPU上的指令序列比AMD CPU上的指令序列更快,并且针对您的确切平台的JIT编译器可以利用此信息来生成高度优化的代码。

扫码关注云+社区