在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