Java代码是保存在本地编译的类数据共享存档(classes.jsa)中还是字节码?

Jea*_*let 7 java performance jit jvm jsa

我想知道创建类数据共享存档(通过运行java -Xshare:dump)是否将字节代码编译为本机代码.

关于类数据共享内部的文档并不多.我链接的页面说明了这一点java -Xshare:dump

将一组类从系统jar文件加载到私有内部表示中,并将该表示转储到文件中.

但是没有说明这个代码是否被编译.

(可能相关:通过向classes.jsa添加自己的应用程序类来加速应用程序启动)

WPr*_*cht 2

在这两种情况下,它都是缓存中的本机代码(请参阅您提供的有关在不同体系结构的计算机上重新生成缓存的链接中的讨论)。IBM JVM 更进一步,提供了更多选项和更好的集群布局,但 Oracle 也能发挥作用。