Server-Class Machine Detection

Starting with J2SE 5.0, when an application starts up, the launcher can attempt to detect whether the application is running on a "server-class" machine and, if so, use the Java HotSpot Server Virtual Machine (server VM) instead of the Java HotSpot Client Virtual Machine (client VM). The aim is to improve performance even if no one configures the VM to reflect the application it's running. In general, the server VM starts up more slowly than the client VM, but over time runs more quickly.


Note: For J2SE 5.0, the definition of a server-class machine is one with at least 2 CPUs and at least 2GB of physical memory.

In J2SE 5.0, server-class detection occurs if neither -server nor -client is specified when launching the application on an i586 or Sparc 32-bit machine running Solaris or Linux. As the following table shows, the i586 Microsoft Windows platform uses the client VM by default. The remaining Sun-supported platforms use only the server VM.

Platform
Default VM
Architecture OS
client VM
if server-class, server VM;
otherwise, 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
Legend:   X = default VM      — = client VM not provided for this platform

For details of using command-line options for launching applications, see the java tool documentation for Solaris, Linux, or Microsoft Windows.