六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 118|回复: 0

Java Options

[复制链接]

升级  26%

23

主题

23

主题

23

主题

秀才

Rank: 2

积分
89
 楼主| 发表于 2013-1-16 16:44:34 | 显示全部楼层 |阅读模式
摘自:http://blog.csdn.net/dingxy/archive/2008/12/03/3439267.aspx
Java Heap SizeOptions
Youachieve best performance by individually tuning each of your applications.Configuring the JVM heap size options listed in Table2-2 increases performance for most applications.
Theoptions listed in Table2-2 may differ depending on your architecture and operating system. See yourvendor's documentation for platform-specific JVM tuning options.
Table2-2 Java Heap Size Options
            Task
            
                        Option
            
                        Description
            
                    Setting            the New generation heap size
                                    -XX:NewSize
                                    Use            this option to set the New generation Java heap size. Set this value to a            multiple of 1024 that is greater than 1MB. As a general rule, set -XX:NewSize to be one-fourth the size of the maximum heap            size. Increase the value of this option for larger numbers of short-lived            objects.
            Be            sure to increase the New generation as you increase the number of processors.            Memory allocation can be parallel, but garbage collection is not            parallel.
                                Setting            the maximum New generation heap size
                                    -XX:MaxNewSize
                                    Use            this option to set the maximum New generation Java heap size. Set this value to            a multiple of 1024 that is greater than 1MB.
                                Setting            New heap size ratios
                                    -XX:SurvivorRatio
                                    The            New generation area is divided into three sub-areas: Eden, and two survivor            spaces that are equal in size.
            Use            the -XX:SurvivorRatio=X option to            configure the ratio of the Eden/survivor space size. Try setting this value to 8            and then monitor your garbage collection.
                                Setting            minimum heap size
                                    -Xms
                                    Use            this option to set the minimum size of the memory allocation pool. Set this            value to a multiple of 1024 that is greater than 1MB. As a general rule, set            minimum heap size (-Xms) equal to the maximum heap            size (-Xmx).
                                Setting            maximum heap size
                                    -Xmx
                                    Use            this option to set the maximum Java heap size. Set this value to a multiple of            1024 that is greater than 1MB.
                    Forcing Garbage Collection
Makesure that full garbage collection is necessary before forcing it on a server.When you force garbage collection, the JVM often examines every living object inthe heap.
Touse the Administration Console to force garbage collection on a specificserver:

  • On the Administration Console, click the server instance node in the left    pane for the server whose memory usage you want to view. A dialog displays in    the right pane showing the tabs associated with this instance.   
  • Click the Monitoring tab.   
  • Click the JVM tab.   
  • Check the Memory Usage graph for high usage.    Note    that the Memory Usage graph displays only for servers that are currently    running.
       
  • Click the Force Garbage Collection text link to force garbage collection.    A    message displays indicating that the collection operation was    successful.
SettingJava HotSpot VM Options
Youcan use standard java options to improve performance.Be aware that how you use these options depends on how your application iscoded. Although command line options are consistent across platforms, someplatforms may have different defaults.
Youneed to test both your client and server JVMs and see what performs better foryour particular application.
See SettingNon-Standard Java Command Line Options for more VM options that affectperformance.
Standard Options for NT
ForNT, WebLogic Server invokes the JVM via the java command. Use the options listed in listed in Table2-3.
Table2-3 Standard options for HotSpot VM on NT
            Option
            
                        Description
            
                    -hotspot
                                    Selects            the Client HotSpot VM.
                                -server
                                    Selects            the server VM.
                                -classic
                                    Selects            the classic VM.
                    Standard Options for UNIX
ForUNIX, the WebLogic Server invokes the JVM via the java command. Use the options listed in listed in Table2-4.
Table2-4 Standard options for HotSpot VM on UNIX
            Option
            
                        Description
            
                    -client or -hotspot
                                    Selects            the Client HotSpot VM.
                                -server
                                    Selects            the server VM.
                    Setting Non-Standard Java Command LineOptions
Youcan use non-standard java options to improveperformance. Be aware that how you use these options depends on how yourapplication is coded. Although command line options are consistent acrossplatforms, some platforms may have different defaults.
Non-Standard Options for NT
Someexamples of non-standard options for improving performance on the Hotspot VM onNT are listed in Table2-5.
Table2-5 Non-standard options for HotSpot VM on NT
            Option
            
                        Description
            
                    -Xnoclassgc
                                    This            option disables garbage collection for the class, It prevents re-loading of the            class when the class is referenced after all references to it have been lost.            This option requires a greater heap size.
                                -oss
                                    This            option controls the Java thread stack size. Setting it too high (>2MB)            severely degrades performance.
                                -ss
                                    This            option controls the native thread stack size. Setting it too high (>2MB)            severely degrades performance.
                                -Xverbosegc:file=/tmp/gc$$.out
                                    This            option redirects -verbosegc messages to a file,            allowing you to separate your garbage collection messages from the rest of the            messages on stderr.
            It            also provides a performance advantage because writes to files are buffered            better than writes to a character stream like stderr.
            See            also Turning On            Verbose Garbage Collection and Redirecting            Output.
                    
===================================********========================================
java - the Java application launcher

SYNOPSIS    java [ options ] class [ argument ... ]
java [ options ] -jar file.jar [ argument ... ]
optionsCommand-line options.className of the class to be invoked.file.jarName of the jar file to be invoked. Used only with -jar.argumentArgument passed to the main function.
DESCRIPTION
The java tool launches a Java application. It does this bystarting a Java runtime environment, loading a specified class, and invokingthat class's mainmethod. The method declaration must look like thefollowing:    public static void main(String args[])
The method must be declared public and static, it must not return anyvalue, and it must accept a String array as a parameter. By default, the firstnon-option argument is the name of the class to be invoked. A fully-qualifiedclass name should be used. If the -jar option is specified, the firstnon-option argument is the name of a JAR archive containing class andresource files for the application, with the startup class indicated bythe Main-Classmanifest header.The Java runtime searches for the startup class, and other classes used, inthree sets of locations: the bootstrap class path, the installed extensions, andthe user class path.
Non-option arguments after the class name or JAR file name are passed tothe main function.
OPTIONS
The launcher has a set of standardoptions that are supported on the current runtime environment and will besupported in future releases. In addition, the current implementations of thevirtual machines support a set of non-standardoptions options that are subject to change in futurereleases.
Standard Options
-clientSelect the Java HotSpot Client VM. This is the default.-serverSelect the Java HotSpot Server VM.-classpath classpath-cp classpathSpecify a list of directories, JAR archives, and ZIP archives to search forclass files. Class path entries are separated by colons (:).Specifying -classpath or -cp overrides any setting ofthe CLASSPATH environment variable.If -classpath and -cp are not used and CLASSPATH is notset, the user class path consists of the current directory(.).
For more information on class paths, see Settingthe Class Path.
-Dproperty=valueSet a system property value.-jarExecute a program encapsulated in a JAR file. The first argument is the nameof a JAR file instead of a startup class name. In order for this option to work,the manifest of the JAR file must contain a line of theform Main-Class: classname. Here, classname identifies theclass having thepublic static void main(String[] args) method thatserves as your application's starting point. See the Jar toolreference page and the Jar trail of the Java Tutorial forinformation about working with Jar files and Jar-file manifests.When you use this option, the JAR file is the source of all user classes, andother user class path settings are ignored.
On Solaris 8, JAR files that can be run with the "java -jar"option can have their execute permissions set so they can be run without using"java -jar".
-verbose-verbose:classDisplay information about each class loaded.-verbose:gcReport on each garbage collection event.-verbose:jniReport information about use of native methods and other Java NativeInterface activity.-versionDisplay version information and exit.-showversionDisplay version information and continue.-?-helpDisplay usage information and exit.-XDisplay information about non-standard options andexit.
Non-Standard Options
-XintOperate in interpreted-only mode. Compilation to native code is disabled,and all bytecodes are executed by the interpreter. The performance benefitsoffered by the Java HotSpot VMs' adaptive compiler will not be present in thismode.-XdebugStart with the debugger enabled. Refer to jdbdescription for more details and an example.-Xbootclasspath:bootclasspathSpecify a colon-separated list of directories, JAR archives, and ZIParchives to search for boot class files. These are used in place of the bootclass files included in the Java 2 SDK. Note: Applications that use thisoption for the purpose of overriding a class in rt.jar should not be deployed asdoing so would contravene the Java 2 Runtime Environment binary codelicense.-Xbootclasspath/a:pathSpecify a colon-separated path of directires, JAR archives, and ZIP archivesto append to the default bootstrap class path.-Xbootclasspath/p:pathSpecify a colon-separated path of directires, JAR archives, and ZIP archivesto prepend in front of the default bootstrap class path. Note: Applicationsthat use this option for the purpose of overriding a class in rt.jar should notbe deployed as doing so would contravene the Java 2 Runtime Environment binarycode license.-XfuturePerform strict class-file format checks. For purposes of backwardscompatibility, the default format checks performed by the Java 2 SDK's virtualmachine are no stricter than the checks performed by 1.1.x versions of the JDKsoftware. The -Xfuture flag turns on stricter class-file format checksthat enforce closer conformance to the class-file format specification.Developers are encouraged to use this flag when developing new code because thestricter checks will become the default in future releases of the Javaapplication launcher.-XnoclassgcDisable class garbage collection.-XincgcEnable the incremental garbage collector. The incremental garbage collector,which is off by default, will eliminate occasional garbage-collection pausesduring program execution. However, it can lead to a roughly 10% decrease inoverall GC performance.-XmsnSpecify the initial size, in bytes, of the memory allocation pool. Thisvalue must be a multiple of 1024 greater than 1MB. Append theletter k or Kto indicate kilobytes,or m or M to indicate megabytes. The default value is 2MB.Examples:
-Xms6291456
-Xms6144k
-Xms6m
-XmxnSpecify the maximum size, in bytes, of the memory allocation pool. Thisvalue must a multiple of 1024 greater than 2MB. Append theletter k orK to indicate kilobytes,or m or M to indicate megabytes. The default value is 64MB.The upper limit for this value will be approximately 4000m on Solaris 7 andSolaris 8 SPARC platforms and 2000m on Solaris 2.6 and x86 platforms, minusoverhead amounts. Examples:
-Xmx83886080
-Xmx81920k
-Xmx80m
-XssnSet thread stack size. Each Java thread has two stacks: one for Java codeand one for C code. This option sets the maximum stack size that can be used byC code in a thread to n. Every thread that is spawned during theexecution of the program passed to java has n as its C stack size. Thedefault units for n are bytes and n must be > 1000 bytes. Tomodify the meaning of n, append either the letter k forkilobytes or the letter mfor megabytes. The default stack size is 512kilobytes (-Xss512k).-XprofProfiles the running program, and sends profiling data to standard output.This option is provided as a utility that is useful in program development andis not intended to be be used in production systems.-Xrunhprof[:help][:<suboption>=<value>,...]Enables cpu, heap, or monitor profiling. This option istypically followed by a list of comma-separated"<suboption>=<value>" pairs. Run thecommand java -Xrunhprof:help to obtain a list of suboptions and theirdefault values.-XrsReduces use of operating-system signals by the Java virtual machine (JVM).This option is available beginning with J2SE 1.3.1.In J2SE 1.3.0, the Shutdown Hooks facility was added to allow orderlyshutdown of a Java application. The intent was to allow user cleanup code (suchas closing database connections) to run at shutdown, even if the JVM terminatesabruptly.
Sun's JVM catches signals to implement shutdown hooks for abnormal JVMtermination. The JVM uses SIGHUP, SIGINT, and SIGTERM to initiate the running ofshutdown hooks.
The JVM uses a similar mechanism to implement the pre-1.2 feature of dumpingthread stacks for debugging purposes. Sun's JVM uses SIGQUIT to perform threaddumps.
Applications embedding the JVM frequently need to trap signals like SIGINT orSIGTERM, which can lead to interference with the JVM's own signal handlers. Toaddress this issue, the -Xrs command-line option has been added beginningin J2SE 1.3.1. When -Xrs is used on Sun'sJVM, the signal masks for SIGINT, SIGTERM, SIGHUP, and SIGQUIT are not changedby the JVM, and signal handlers for these signals are not installed.
There are two consequences of specifying -Xrs:

  • SIGQUIT thread dumps are not available.   
  • User code is responsible for causing shutdown hooks to run, for example by    calling System.exit() when the JVM is to be terminated.
WARNING: Flags -Xdebug and -Xint are mutuallyexclusive. No more than one of those options should be used ona java command line.
             -Xconcurrentio: Which generally helps programs with many threads,particularly on Solaris. The main feature turned on with-Xconcurrentio is to use LWP based synchronization instead of threadbased synchronization. We have found certain applications to speed upby over 40%. Since 1.4, LWP basedsynchronization is the default, but -Xconcurrentio can still help sinceit turns on some other internal options. Finally, there is an alternatethread library which is the defaulton Solaris 9 and can also be used on Solaris 8 by changing yourLD_LIBRARY_PATH to include /usr/lib/lwp before /usr/lib.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表