在J2SE5.0中,当一个java应用程序启动时,java launcher将试图检测当前运行的应用程序是否运行在一个"server-class"类型的机器。如果是"server-class"类型,则使用 Java HotSpot Server虚拟机(server VM)代替Java HotSpot Client(client VM)。它的目的是在你没有指定虚拟机启动类型选项的情况下提高应用程序执行性能。通常,server类型的虚拟机启动速度要比client类型的虚拟机 慢,但它在运行时具有更快的速度。
注意: 对于J2SE 5.0,判断是否是"server-class"类型机器的标准是一台机器至少有2个cpu,并且至少是2G以上的物理内存。
在J2SE 5.0里,server-class检测发生在既没有指定-server又没有指定-client虚拟机启动参数,并且应用程序运行在基于i586或者 Sparc 32位机器的Solaris或Linux操作系统情况下。如下表显示的那样,i586机器的Microsoft Windows平台将不进行server-class检查(也就是它默认情况下不是将机器当作server-class类型的机器),它默认就是使用 client VM。其余Sun-supported平台只采用server VM。
平台
|
默认VM
| |||
硬件体系 | 操作系统 |
client VM
|
如果是 server-class则server VM;
否则client VM |
server VM
|
SPARC 32-bit | Solaris |
|
X
|
|
i586 | Solaris |
|
X
|
|
Linux |
|
X
|
| |
Microsoft Windows |
X
|
|
| |
SPARC 64-bit | Solaris |
—
|
|
X
|
AMD64 | Linux |
—
|
|
X
|
Microsoft Windows |
—
|
|
X
|
图例说明: X = 默认VM — = 对应平台不提供client VM