Note: Except where specified, any time bytes are specified as a parameter in an option, you may also designate kilobytes or megabytes by using the letter k or m respectivly. (You may use either uppercase or lowercase letters.) For example, the following would all be equivalent values for bytes:4194301, 4096k, 4096K, 4m, and 4M
    
        
			
			
				General Options
				
			
			
        
			
			
				Mac OS X-Specific
				
			
			
        
			
			
				Heap Size
				
			
			
        
			
			
				Garbage Collection: Memory Usage
				
			
			
        
			
			
				Garbage Collection: General Settings
				
			
			
        
			
			
				Compilation
				
			
			
        
			
			
				Threading
				
			
			
        
			
			
				Sharing
				
			
			
        
    
-serverThere is not a distinct server VM for Mac OS X. Although
you may use the -server flag
when invoking java, it
does not start up a different VM, instead it starts the client VM
that has been tuned for use in a server environment. This tuning
includes:
Using a different class list for the shared archive generation that does not include the GUI classes.
Increasing the size of the Java heap.
Increasing the size of the Eden generation.
Turns on thread local Eden garbage collection.
-XDisplays a brief description of the nonstandard VM options.
-Xbootclasspath:pathSpecifies a list of directories and JAR and ZIP archives to search for boot class files in. Seperate multiple entries with colons (:).
-Xfuture Performs strict format-checking of class files. This option enforces a tighter conformance to the class file specification than the default, which is based on the standard in Java 1.1.x. You should test your code with this flag to ensure functionality in future versions of Java that may enforce stricter class file format-checking.
-XprofSends detailed profiling data of the running program to standard output. This option should not be used in production code.
-XrsSame as -XX:+ReduceSignalUsage.
-XX:+ MaxFDLimitIncreases the file descriptor limit to the maximum.
-XX:MaxDirectMemorySize=size
in megabytesThe maximum memory that can be allocated using NIO direct buffers. The default is 64 (64M).
-XX:-PrintJavaStackAtFatalStateBy default Java backtraces are generated when a crash occurs in native code. Turn this option off if you are seeing crashes in your Java error reporting.
-XX:+ReduceSignalUsageNormally, Java responds to SIGHUP, SIGINT,
and SIGTERM signals.
With this option, Java ignores these signals; you need to implement
handlers for them in native code as appropriate. Also, implement
any relevent shutdown procedure from System.exit(). 
-XX:ReservedCodeCacheSize=size
in megabytesSets the maximum code cache size. The default is 32 (32M).
-Xdock:icon=pathToIconFileSets the icon displayed in the Dock. By default Mac
OS X displays a generic Java icon unless you specify otherwise.
You only need to use this for applications launched from the command
line or from a JAR file. Double-clickable application bundles designate
their icon in the Info.plist file.
-Xdock:name=applicationNameSets the name to display in the Dock and in the menu
bar. By default Mac OS X displays the fully qualified name of the
main class unless you specify otherwise. You need to use this only
for applications launched from the command line or from a JAR file.
Double-clickable application bundles get the appropriate name from
the Info.plist file.
-XX:+UseFileLockingOff by default, this option enables Carbon file locking. If your Java application will be interracting with files that may be simultaneously acted on by Carbon applications, use this flag. It keeps the respective applications from modifying the file while the other is accessing it.
-Xmssize
in bytesSets the initial size of the Java heap. The default
size is 2097152 (2MB). The values must be a multiple of, and greater
than, 1024 bytes (1KB). (The -server flag
increases the default size to 32M.)
-Xmnsize
in bytesSets the initial Java heap size for the Eden generation.
The default value is 640K. (The -server flag
increases the default size to 2M.)
-Xmxsize
in bytesSets the maximum size to which the Java heap can grow.
The default size is 64M. (The -server flag
increases the default size to 128M.) The maximum heap limit is about
2 GB (2048MB).
Note: Many of the garbage collection flags are dependent on the settings for the heap size. Make sure that you have the appropriate sizes set for the heap before fine-tuning how garbage collection uses that memory space.
-XX:MinHeapFreeRatio=percentage
as a whole number Modifies the minimum percentage of the heap kept free after garbage collection. The default value of 40. If at least 40% of the heap is not freed after garbage collection, the heap size increases.
-XX:MaxHeapFreeRatio=percentage
as a whole number Changes the maximum percentage of heap kept free after garbage collection before the heap is shrunk. The default value is 70. This means that if a garbage collection results in more than 70% of the heap being freed, the heap size decreases.
-XX:NewSize=size
in bytesSets the default size for the Eden generation of allocated
objects. The default value is 640K. (The -server flag
increases the default size to 2M.)
-XX:MaxNewSize=size
in bytes Allows you to change the upper limit of the young object
space in which new objects are allocated. The default value is 640K.
(The -server flag increases
the default size to 2M.)
-XX:NewRatio=valueChanges the ratio of new to old space sizes from the default value of 8 where the new space is 1/8 the size of the old space.
-XX:SurvivorRatio=number Modifies the ratio of size of the Eden to the survivor space from the default of 10 where Eden is survivorRatio+2 times larger than the survivor space.
-XX:TargetSurvivorRatio=percentageDesired percentage of survivor space used after scavenge. Default is 50.
-XX:MaxPermSize=size
in MBModifies the size of the permanent generation. The default is value is 32 (32MB).
-XX:-CleanPagesOnUncommitNormally, when the garbage collection mechanism determines that the heap can be shrunk, i.e., a lot of memory that had been used is no longer needed by the program, the Java VM marks the memory as clean. The operating system is then able to reclaim pages for use by other processes without needing to page out the old memory content to disk. This flag turns off this behavior so that these pages are not marked as clean.
-XincgcThis flag is not supported in Mac OS X. The train garbage collector is not supported.
-Xnoclassgc Disables garbage collection of classes.
-XX:+UseConcMarkSweepGCEnables concurrent mark and sweep garbage collection. This option has an effect only on multiprocessor computers.
-XX:+UseParallelGC Enables parallel garbage collection. This option has an effect only on multiprocessor computers.
-XX:-DisableExplicitGC Ignores explicit calls to System.gc() in
your code. The VM still performs garbage collection when it normally
would. This option just disallows you from explictly forcing garbage
collection in your code.
-XX:+PrintTenuringDistribution Prints tenuring age information for allocated objects in the young generation.
-Xint Runs the VM in interperated mode only. With this option, none of the bytecodes are compiled.
-XX:CompileThreshold=value Changes the number of method invocations (branches) before compilation begins. The default is 1000.
-XX:-InlineUnreachedCallsBy default, the VM performs method inlining on whatever code it can to facilitate optimazation by the compiler. Setting this flag causes less code to be compiled due to inlining. Code that would not normally be reached, like exceptions, is not inlined and therefore interpereted at runtime. Setting this flag may be detrimental to performance.
-XX:+CITime Displays how much time is spent in compiled code.
-XX:+PrintCompilation Prints a trace of the methods as they are compiled.
-XX:NewSizeThreadIncrease=size
in KBAllows you to specify how much to increment the young object space size per active thread. This option may be useful in regulating an increased allocation rate due to increased threads. The default increment is 16 (16 kilobytes).
-XX:ThreadStackSize=size
in KBChanges the thread stack size from the operating system’s default size.
-XX:+UseTLAB Enables a thread-local allocation buffer. Using the buffer allows for more scalable allocation for heavily threaded applications, greatly increasing allocation performance. It is on by default on multiprocessor computers and in Mac OS X Server.
-XX:+PrintSharedSpacesTurns on verbose output about sharing.
-XX:-UseSharedSpacesTurns sharing off.
© 2004, 2005 Apple Computer, Inc. All Rights Reserved. (Last updated: 2005-04-29)