| # The Java HotSpotTM Client and Server Virtual Machines | Documentation Contents

> Two implementations of the Java virtual machine are available for J2SE 1.3:

> > Java HotSpotTM Client VM
> > Java HotSpot Server VM

> 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
> - Java HotSpot Architeture white paper
> - Java HotSpot VM FAQ
> - The Java HotSpot Server VM: The Solution for Reliable, Secure Performance for the Enterprise

> ### The Java HotSpot Client VM

> 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

> - Java application launcher reference page
> - Appletviewer reference page

> ### Java HotSpot Server VM

> 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:

> >     java -server MyApp

See Also

- Performance FAQ (on the java.sun.com web site)
- Java HotSpot VM Options (on the java.sun.com web site)

*As used on this web site, the terms "Java virtual machine" or "JVM" mean a virtual machine for the Java platform.

Copyright © 1999, 2000 Sun Microsystems, Inc. All Rights Reserved. Please send comments to: jdk-comments@eng.sun.com |