The Solaris and Linux versions of J2SE 1.3
ship with both VM implementations. The Win32 version of J2SE 1.3
contains only the Java HotSpot Client VM. The Java HotSpot Server VM
for Win32 platforms is available as a separate download from the
Java HotSpot web site.
Some features of Java HotSpot technology, common to both VM implementations,
are the following.
Adaptive compiler - Applications are launched using a standard interpreter, but the code is then analyzed
as it runs to detect performance bottlenecks, or "hot spots".
The Java HotSpot Client VM compiles those performance-critical portions of the code for a boost
in performance, while avoiding unnecessary compilation of seldom-used
code (most of the program). The Client VM also
uses the adaptive compiler to decide, on the fly, how best to optimize
compiled code with techniques such as in-lining. The runtime analysis
performed by the compiler allows it to eliminate guesswork in determining
which optimizations will yield the largest performance benefit.
Improved memory allocation and garbage collection -
The Java HotSpot Client VM allocates memory for objects
more quickly than the classic virtual machine.
The Client VM also
has a state-of-the-art garbage collector that is faster and
more efficient than the garbage collector of the classic VM.
Thread synchronization - The Java programming language
allows for use of multiple, concurrent paths of program execution
(called "threads"). The Java HotSpot Client VM provides a
leaner, speedier
thread-handling capability that is designed to scale readily for use
in large, shared-memory multiprocessor servers.
More information about Java HotSpot technology can be found in
The Java HotSpot Client Virtual Machine* serves as a replacement for both
the "classic" virtual machine and the Just-in-time (JIT) compilers used by
previous versions of the Java 2 SDK to offer improved runtime performance
for applications and applets. The Java HotSpot Client VM has
been specially tuned to reduce application start-up time and memory
footprint, making it particulary well suited for client environments.
On all platforms, the Java application launcher (the java utility)
will use Java HotSpot Client VM by default when launching applications.
For more information, see
The Java HotSpot Server VM is similar to the Java HotSpot Client VM,
except that it has been specially tuned to maximize peak operating speed.
It is intended for running long-running server applications, for which
having the fastest possible operating speed is generally more important
than having the fastest possible start-up time.
The Solaris and Linux versions of J2SE 1.3 ship with the Java HotSpot
Server VM pre-installed. The Java HotSpot Server VM for Win32 platforms
is available as a separate download from the
Java HotSpot web site.
To invoke the Java HotSpot Server VM rather than the default Java HotSpot
Client VM, use the -server option of the Java application launcher.
For example: