可能重复:
Real differences between “java -server” and “java -client”?
-server选项启用了什么-XX标志(如果有的话)?我非常确定它控制堆大小以及使用哪个垃圾收集器实现。但我不确定它是否会执行其他操作,例如启用某些优化。
答案 0 :(得分:0)
实际上-server不会影响垃圾收集器,实际上很少有XX选项受到影响。
它实际上做了什么:它运行更智能的编译器,称为C2。它包括更多优化(和去优化)和OSR(在堆栈替换上)。它的速度较慢,迭代分析速度较慢(C1为1k,C2为10k)。
总的来说,您需要知道:C2是一个更好的编译器(可以是30-100%+峰值性能的因素),但它在编译时和分析时速度较慢。 C2比C1检测快速路径的分析要多得多。如果需要,C2可以做很多事情,更多内联和代码克隆。
但是,Stackoverflow不是整篇白皮书讨论的地方。