我正在测试我的Tomcat服务器4,使用-server JVM选项。我的JDK是FreeBSD上的1.5版本。
我没有看到任何明显的差异或问题。如果我要在生产系统上开启此选项,我可以期望什么样的改进和需要注意哪些问题?
我已经阅读了What's the effect of -server option for the HotSpot JVM?,但它没有详细讨论这个问题。
我正在测试我的Tomcat服务器4,使用-server JVM选项。我的JDK是FreeBSD上的1.5版本。
我没有看到任何明显的差异或问题。如果我要在生产系统上开启此选项,我可以期望什么样的改进和需要注意哪些问题?
我已经阅读了What's the effect of -server option for the HotSpot JVM?,但它没有详细讨论这个问题。
-server
或-client
,JVM1.5+会选择最佳方法 - 即使您不使用该属性,它也可能在服务器模式下运行。-client
选项启动JVM,您可能会注意到差异。服务器模式的第一个区别是启用并行GC,这是一种吞吐量垃圾收集器,适用于多核机器。通常情况下,它会为您提供更短的垃圾收集延迟。
其次,服务器模式将在JIT中使用更积极的优化。
我认为生产机器上必须拥有服务器模式。
我建议您切换到1.6 JVM,因为它具有更好的gc实现和更好的优化。
OTN网站讨论了这个区别。在我们的任何生产系统中,我们很少使用默认参数(GC收集算法、堆大小等),因此它并没有提供太多的帮助。
在实现此参数后,您不需要特别注意任何事情,但如果您发现-server和-client之间有差异,则JIT编译器始终是一个好的起点。
由于不同的垃圾回收和其他参数,您将会在长期中注意到差异。