Java虚拟机调优-Xbatch和-Xcomp
我正在查看用于运行Alfresco的JVM配置选项,主要是关于。建议之一是使用JVM标志Java虚拟机调优-Xbatch和-Xcomp,java,jvm,jvm-hotspot,jvm-arguments,Java,Jvm,Jvm Hotspot,Jvm Arguments,我正在查看用于运行Alfresco的JVM配置选项,主要是关于。建议之一是使用JVM标志-Xcomp和-Xbatch。理由是: 如果希望Hotspot预编译这些类,可以添加[-Xcomp和-Xbatch]。但是,这将显著增加服务器启动时间,但会突出显示丢失的依赖项,这些依赖项稍后可能会被命中 根据我对-Xcomp和-Xbatch标志的了解,我想知道它们是否真的提供了任何好处 -Xcomp让HotSpot预先以最大优化编译所有代码,从而避免VM通过系统的标准运行获得的任何评测 -Xbatch停止
-Xcomp
和-Xbatch
。理由是:
如果希望Hotspot预编译这些类,可以添加[-Xcomp和-Xbatch]。但是,这将显著增加服务器启动时间,但会突出显示丢失的依赖项,这些依赖项稍后可能会被命中
根据我对-Xcomp
和-Xbatch
标志的了解,我想知道它们是否真的提供了任何好处
让HotSpot预先以最大优化编译所有代码,从而避免VM通过系统的标准运行获得的任何评测-Xcomp
停止后台编译,这意味着导致代码被编译的线程将阻塞,直到编译完成。但是,编译完成后,先前阻塞的线程将不会运行编译后的代码。这是Java 6(Mustang)中的一个变化——在Mustang之前,由于存在-Xbatch
标志而被阻止编译的线程保证在编译完成后立即在编译代码中运行。因此,我猜想-Xbatch
标志的建议是在旧的虚拟机上露天运行的遗留问题-Xbatch
我想补充两件事,首先,我还没有访问Alfresco实例来测试它,其次,通过查看其他配置选项,我真的不知道托管Alfresco的机器的规格,它必须是64位VM。尽管如此,我希望社区能够提供一些有用的信息,也许从热点优化的角度来看。Alfresco是一种企业内容管理。我不确定这些标志如何影响其性能。然后在同一页的一张便条上写着 -- 但是,这将显著增加服务器启动时间,但会突出显示丢失的依赖项,这些依赖项稍后可能会被命中。
我的意思是,作者并不是真的意味着性能提升。他/她写这篇文章是为了检查所有依赖关系是否到位 一般来说,最好让热点编译器自行调整。即使使用服务器VM(-Server)也是64位和某些“服务器类”机器的默认设置 -Xbatch主要用于调试,如您所指出的: 因此-Xbatch开关即使在野马时代之前也不是特别有用的开关。它对jvm开发人员有些有用,因为它会使运行更加可预测和可再现 -Xcomp取消了为高效编译而收集信息的功能。从: 从性能的角度来看,有人可能会认为-Xcomp是个好主意。然而,事实并非如此!JIT编译器在编译之前使用这1000次迭代来收集关于如何编译方法以获得最佳效率的信息-Xcomp取消了它这样做的能力,因此我们实际上可以看到性能下降
如果不考虑性能,我从未见过使用这些标志来检测缺少的依赖项(),因此,我想我会将两者都去掉。Alfresco页面上的真实世界示例部分是2009年8月,它似乎是JDK 1.6?@ktaylorjohn是的,没错,但是我只是想知道-Xbatch和-Xcomp标志是否有什么不同。Alfresco似乎是唯一一个在JVM测试和类似领域之外提到这些标志的项目