`
zhaohaolin
  • 浏览: 1004175 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

A Collection of JVM Options

    博客分类:
  • JVM
阅读更多

A Collection of JVM Options
compiled by: Joseph D. Mocker (Sun Microsystems, Inc.)
revision: 28.Aug.2007

This document is a compilation of all the JVM options for various versions of the JVM on primarily SPARC/Solaris Platform. The descriptions for each option are taken mostly verbatim from the reference documents.

The JavaTM HotSpot VM Options page makes some good points regarding the different types of options, which should be followed when reading this document as well. To paraphrase:

  • Standard options recognized by the Java HotSpot VM are described on the Java Application Launcher reference pages.
  • Options that begin with -X are non-standard (not guaranteed to be supported on all VM implementations), and are subject to change without notice in subsequent releases of the Java 2 SDK.
  • Because the -XX options have specific system requirements for correct operation and may require privileged access to system configuration parameters, they are not recommended for casual use. These options are also subject to change without notice.

Please submit any comments, corrections, additions to jvm-options-list@sun.com .

Caveats: I am not associated with any Java Platform development group, I simply put this list together from the various reference sources I could find and without referring to any source code. I have done my best to ensure the options are valid for representative JVMs, however I have not tested every version of every JVM so it is quite possible that options may not be valid in all cases.

Option Type 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Description
-client bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Use Client HotSpot VM. Must be first option.
-server bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Use Server HotSpot VM. Must be first option.
-verbose[:class|gc|jni] bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable output of various pieces of the VM. specifying options twice may produce more detailed output.
-cp path 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set search path for application classes and resources
-classpath path 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set search path for application classes and resources
-version bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 print product version and exit
-showversion bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 print product version and continue
-fullversion bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 print full java version and exit
-agentlib:<libname>[=<options>] nv           1.6.0 load native agent library <libname>, e.g. -agentlib:hprof see also, -agentlib:jdwp=help and -agentlib:hprof=help
-agentpath:<pathname>[=<options>] nv           1.6.0 load native agent library by full pathname
-javaagent:<jarpath>[=<options>] nv           1.6.0 load Java programming language agent, see java.lang.instrument
-d32 bool   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 use a 32-bit data model if available
-d64 bool   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 use a 64-bit data model if available
-ea[:packagename...|:classname] list   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable assertions
-enableassertions[:packagename...|:classname] list   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable assertions
-da[:packagename...|:classname] list   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 disable assertions
-disableassertions[:packagename...|:classname] list   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 disable assertions
-esa bool   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable system assertions
-enablesystemassertions bool   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable system assertions
-dsa bool   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 disable system assertions
-disablesystemassertions bool   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 disable system assertions
-Dname=value nv 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set a system property
-jre-restrict-search bool         1.5.0 1.6.0 include user private JREs in the version search
-jre-no-restrict-search bool         1.5.0 1.6.0 exclude user private JREs in the version search
-Xt bool O O O O O O turn on instruction tracing
-Xtm bool O O O O O O turn on method tracing
-Xbootclasspath[/a|/p]:<path> list 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set, append to, or prepend to boot class path
-Xdebug bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable remote debugging
-Xfuture bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable strictest checks, anticipating future default
-Xcheck:jni bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 perform additional checks for JNI functions
-Xshare:off bool           1.6.0 do not attempt to use shared class data
-Xshare:auto bool           1.6.0 use shared class data if possible (default)
-Xshare:on bool           1.6.0 require using shared class data, otherwise fail.
-Xnoclassgc bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 disable class garbage collection
-Xss<size> size 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set maximum native stack size for any thread
-Xoss<size> size 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set maximum Java stack size for any thread. Note: This option is useless with HotSpot as HotSpot doesn't have separate native and Java stacks.
-Xms<size> size 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set initial Java heap size
-Xmx<size> size 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set maximum Java heap size
-Xmn<size> size   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Size of young generation
-Xrs bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 reduce the use of OS signals
-Xrunhprof[:help]|[:option=value, ...] list 1.3.1 1.4.0   1.4.2 1.5.0 1.6.0 perform heap or cpu profiling
-Xmaxjitcodesize<size> size 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set the maximum size (in bytes) for the JIT code area
-Xsqnopause bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 do not pause for user interaction on SIGQUIT
-Xoptimize bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Use optimizing JIT compiler (SPARC only). Replaced by -server in later VMs
-Xmixed bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 mixed mode execution (default)
-Xint bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 interpreted mode execution only
-Xincgc bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Incremental GC
-Xconcgc bool     1.4.1 1.4.2 1.5.0 1.6.0 Concurrent GC. Replaced by -XX:+UseConcMarkSweepGC (available beginning with J2SE 1.4.1)
-Xprof bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Precursor to -Xrunprof.
-Xaprof path 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Simple allocation profiler. unstable. debug only.
-Xloggc:<file> path   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Log garbage collection actions to a specified file.
-Xcomp bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Forces HotSpot to compile 100% of the code with maximum optimization.
-Xbatch bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Forces HotSpot to compile methods in the foreground. Normally method compilation is moved from the foreground to a background process if they take long. This allows allows the interpreted version to continue to run until the compiled version is complete. This option prevents background compiling.
-Xconcurrentio bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 The main feature turned on with -Xconcurrentio is to use LWP based synchronization instead of thread based synchronization. We have found certain applications to speed up by over 40%. In 1.4, LWP based synchronization is the default, but -Xconcurrentio can still help since it turns on some other internal options.
-Xgenconfig bool           1.6.0 1.2 option only
-Xverifyheap bool O O O O O   Verify heap integrity. Replaced by -XX:+VerifyBeforeGC -XX:+VerifyAfterGC -XX:+VerifyTLE (-XX:+VerifyTLAB in J2SE 1.4) -XX:+VerifyBeforeScavenge -XX:+VerifyAfterScavenge (all debug only)
-XX:AdaptivePermSizeWeight=<value> uintx     1.4.1 1.4.2 1.5.0 1.6.0  
-XX:AdaptiveSizeDecrementScaleFactor=<value> uintx         1.5.0 1.6.0  
-XX:AdaptiveSizePolicyCollectionCostMargin=<value> uintx         1.5.0 1.6.0  
-XX:AdaptiveSizePolicyFootprintThreshold=<value> uintx         1.5.0    
-XX:AdaptiveSizePolicyInitializingSteps=<value> uintx         1.5.0 1.6.0  
-XX:AdaptiveSizePolicyWeight=<value> uintx     1.4.1 1.4.2 1.5.0 1.6.0  
-XX:AdaptiveSizeThroughPutPolicy=<value> uintx         1.5.0 1.6.0  
-XX:AdaptiveTimeWeight=<value> uintx     1.4.1 1.4.2 1.5.0 1.6.0  
-XX:+AdjustConcurrency bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0  
-XX:+AggressiveHeap bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 This option instructs the JVM to push memory use to the limit: the overall heap is more than 3850MB, the allocation area of each thread is 256K, the memory management policy defers collection as long as possible, and (beginning with J2SE 1.3.1_02) some GC activity is done in parallel.
-XX:+AggressiveOpts bool           1.6.0  
-XX:AliasLevel=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0  
-XX:AllocatePrefetchDistance=<value> intx           1.6.0  
-XX:AllocatePrefetchInstr=<value> intx           1.6.0  
-XX:AllocatePrefetchLines=<value> intx           1.6.0  
-XX:AllocatePrefetchStepSize=<value> intx           1.6.0  
-XX:AllocatePrefetchStyle=<value> intx           1.6.0  
-XX:+AllowJNIEnvProxy bool           1.6.0  
-XX:+AllowUserSignalHandlers bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Do not complain if the application installs signal handlers (Solaris Only)
-XX:AltStackSize=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2     Alternate signal stack size (in Kbytes, Solaris Only)
-XX:+AlwaysActAsServerClassMachine bool           1.6.0  
-XX:+AlwaysCompileLoopMethods bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0  
-XX:AlwaysInflate=<value> intx           1.6.0  
-XX:+AlwaysPreTouch bool           1.6.0  
-XX:+AlwaysTenure bool     1.4.1 1.4.2 1.5.0 1.6.0  
-XX:AppendRatio=<value> intx         1.5.0 1.6.0  
-XX:+BackgroundCompilation bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Enables or disables JIT compilation in the background. When enabled, interpreted methods are still executed until background compilation is complete.
-XX:BaseFootPrintEstimate=<value> uintx     1.4.1 1.4.2 1.5.0 1.6.0  
-XX:BCEATraceLevel=<value> intx           1.6.0  
-XX:BiasedLockingBulkRebiasThreshold=<value> intx           1.6.0  
-XX:BiasedLockingBulkRevokeThreshold=<value> intx           1.6.0  
-XX:BiasedLockingDecayTime=<value> intx           1.6.0  
-XX:BiasedLockingStartupDelay=<value> intx           1.6.0  
-XX:+BindCMSThreadToCPU bool           1.6.0  
-XX:+BindGCTaskThreadsToCPUs bool     1.4.1 1.4.2 1.5.0 1.6.0  
-XX:+BindScavengeThreads bool 1.3.1            
-XX:+BlockOffsetArrayUseUnallocatedBlock bool     1.4.1 1.4.2 1.5.0 1.6.0  
-XX:+BytecodeVerificationLocal bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0  
-XX:+BytecodeVerificationRemote bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0  
-XX:+CheckJNICalls bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0  
-XX:+CheckUnsafeOps bool   1.4.0 1.4.1 1.4.2 1.5.0    
-XX:CICompilerCount=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0  
-XX:+CICompilerCountPerCPU bool       1.4.2 1.5.0 1.6.0  
-XX:+CIDynamicCompilePriority bool 1.3.1 1.4.0 1.4.1        
-XX:+CIMaxPriority bool   1.4.0 1.4.1        
-XX:+CITime bool   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Time spent in JIT Compiler
-XX:+ClassUnloading bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0  
-XX:ClearFPUAtPark=<value> intx           1.6.0  
-XX:+ClipInlining bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0  
-XX:CMSAbortablePrecleanMinWorkPerIteration=<value> uintx         1.5.0 1.6.0  
-XX:CMSAbortablePrecleanWaitMillis=<value> intx         1.5.0 1.6.0  
-XX:+CMSAbortSemantics bool           1.6.0  
-XX:CMSBitMapYieldQuantum=<value> uintx       1.4.2 1.5.0    
-XX:CMSBootstrapOccupancy=<value> intx         1.5.0 1.6.0  
-XX:+CMSClassUnloadingEnabled bool     1.4.1 1.4.2 1.5.0 1.6.0 It has been reported that for 1.5, this apparently needs to be combined with -XX:+CMSPermGenSweepingEnabled in order to take effect.
-XX:+CMSCompactWhenClearAllSoftRefs bool     1.4.1 1.4.2 1.5.0 1.6.0  
-XX:+CMSConcurrentMTEnabled bool           1.6.0  
-XX:CMSDictionaryChoice=<value> intx   1.4.0          
-XX:CMSExpAvgFactor=<value> uintx       1.4.2 1.5.0 1.6.0  
-XX:CMSFullGCsBeforeCompaction=<value> uintx     1.4.1 1.4.2 1.5.0 1.6.0 Parameter that affects compaction of the old generation. If at least this number of concurrent collections has not succeeded between full collection, do a compaction on full collections. If 0, always do compactions on full collections when UseCMSCompactAtFullCollection is true
-XX:CMSIncrementalDutyCycle=<value> uintx       1.4.2 1.5.0 1.6.0  
-XX:CMSIncrementalDutyCycleMin=<value> uintx       1.4.2 1.5.0 1.6.0  
-XX:+CMSIncrementalMode bool       1.4.2 1.5.0 1.6.0  
-XX:CMSIncrementalOffset=<value> uintx       1.4.2 1.5.0 1.6.0  
-XX:+CMSIncrementalPacing bool       1.4.2 1.5.0 1.6.0  
-XX:CMSIncrementalSafetyFactor=<value> uintx       1.4.2 1.5.0 1.6.0  
-XX:CMSIndexedFreeListReplenish=<value> uintx     1.4.1 1.4.2 1.5.0 1.6.0  
-XX:CMSInitiatingOccupancyFraction=<value> intx     1.4.1 1.4.2 1.5.0 1.6.0 Sets the threshold percentage of the used heap in the old generation at which the CMS collection takes place. For example, if set to 60, the CMS collector will be initiated every time the old generation becomes 60% full. By default, this threshold is calculated at run time, and the CMS collector might be triggered only when the old generation heap is about 80-90% full. Tuning this value can improve performance in many cases. Since the CMS collector does not suspend the mutators as it sweeps and frees memory, setting this switch can ensure that enough free memory is available for object promotion from the young generation as more data is allocated by the application. Sometimes, if this switch is not tuned, CMS collection might not be able to keep up and may fail, eventually triggering the default stop-the-world mark-compact collector. Available from J2SE1.4.1.
-XX:+CMSLoopWarn bool     1.4.1 1.4.2 1.5.0 1.6.0  
-XX:CMSMarkStackSize=<value> uintx   1.4.0 1.4.1 1.4.2 1.5.0 1.6.0  
-XX:CMSMarkStackSizeMax=<value> uintx         1.5.0 1.6.0  
-XX:CMSMaxAbortablePrecleanLoops=<value> uintx         1.5.0 1.6.0  
-XX:CMSMaxAbortablePrecleanTime=<value> intx         1.5.0 1.6.0  
-XX:+CMSNoWarning bool   1.4.0 1.4.1        
-XX:+CMSParallelRemarkEnabled bool center
分享到:
评论

相关推荐

    jvm 参数及gc详解

    Java虚拟机(JVM)是Java...阅读“java hotspot vm options.pdf”、“java se 6 hotspot[tm] virtual machine garbage collection tuning.pdf”和“java工具选项文档.pdf”等资料,将有助于深入学习和实践这些知识。

    Jvm调优练习-jvm-tuning.zip

    这通常包括了创建不同的JVM配置文件(如`jvm.options`),编写脚本自动化调优过程,以及学习如何解读和分析JVM生成的日志文件,以便找出性能瓶颈。 总的来说,JVM调优是一个深度且复杂的主题,涉及到许多技术细节。...

    WebLogic10设置虚拟内存大小

    1. **Nursery Size(新生代内存)**:通过 `-Xns` 参数设置,目的是尽可能地增大新生代空间,以减少垃圾收集(Garbage Collection, GC)的暂停时间。不过,Nursery 的最大值不应超过最大堆的95%。 2. **最小堆大小...

    JProfiler Helper

    Hotspots are areas of the code that consume a disproportionate amount of CPU resources. Key aspects include: - Identifying hotspots using CPU profiling data. - Applying filters to narrow down the ...

    GChistoGC日志分析工具

    在Java应用程序中,垃圾收集(Garbage Collection, GC)是一项关键任务,它负责自动管理内存,确保程序高效、稳定地运行。然而,当面临性能问题,特别是Old Generation (OM) 区域的问题时,理解并优化GC的行为至关...

    Java面试经典题

    - 使用 `document.getElementById("selectId").options[selectedIndex].text` 获取选中项的文本。 #### 20. 在 JavaScript 中定时调用函数 foo() - `setInterval(function foo(), interval);` 定时调用函数 foo()...

    java troubleshooting guide for HP-UX.pdf

    ###### 1.7.1.2 Using HPjmeter to Analyze Garbage Collection Data (使用HPjmeter分析垃圾回收数据) - **功能**:监视垃圾回收过程,确保内存管理高效。 - **应用场景**:对于频繁发生GC暂停的应用来说尤其重要。 ...

    android内存管理

    Android系统基于Java虚拟机(JVM),它自带了垃圾收集(Garbage Collection, GC)机制,用于自动回收不再使用的内存,避免内存泄漏。然而,尽管有了GC,开发者仍然需要对内存使用进行谨慎的规划和优化。 1. **手动...

    查看虚拟机状态常用命令

    `jstat` 的主要用途是监控JVM的GC(Garbage Collection,垃圾回收)行为。 - **基本用法**: - `jstat -help`: 显示帮助信息。 - `jstat -options`: 显示可用选项。 - `jstat -&lt;option&gt; [-t] [-h] &lt;vmid&gt; ...

    JProfiler 使用说明 如何分析 分析案例 中文版

    - **调整调用树收集选项 (Adjusting Call Tree Collection Options)**:控制调用树的收集方式,例如是否包括本地方法调用。 - **Java 子系统 (Java Subsystems)**:针对不同Java子系统的性能配置,如内存、CPU等。...

    java9中gc log参数迁移

    在Java 9中,垃圾收集(Garbage Collection, GC)日志参数经历了重大变化,主要是为了提供一个统一的日志框架,这包括了对GC日志的管理和输出。这一改变是通过几个JEP(JDK Enhancement Proposals)实现的,分别是...

    Weblogic内存溢出优化设置

    ### Weblogic内存溢出优化设置详解 #### 一、解决中文显示问题... %JAVA_HOME%/bin/java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh -Duser.region=...

    大厂的Android面试题.pdf

    - **Bitmap处理大图**:利用BitmapFactory.Options配置参数inSampleSize等,减少内存消耗。 - **进程保活**:通过服务、前台服务等方式提高进程在后台的存活率。 - **HTTPS验证证书**:客户端通过检查服务器证书...

    Flink 调优介绍,包括大状态、数据倾斜、反压等监控以及处理方式

    - 观察Garbage Collection的频率和时间,必要时调整JVM的垃圾回收策略。 4. **外部组件性能** - 如果反压是由外部组件引起(如数据写入延迟),则需要优化这些组件的性能。 #### 六、总结 Flink调优是一个复杂但...

    JProfiler使用帮助

    **2.2.1 Adjusting call tree collection options** 此处允许您调整收集调用树数据的选项。调用树是程序执行过程中函数调用序列的表示形式,这对于理解程序的执行流程非常有用。 **2.2.2 JAVA 子系统** 在这里,...

    JPROFILER使用说明

    - **3.2.1 Adjusting Call Tree Collection Options**:调整调用树收集选项,如是否收集方法参数、返回值等。 - **3.2.2 JAVA 子系统**:配置JVM的子系统监控选项,如内存、垃圾回收等。 #### 四、监控视图 **4.1 ...

    ehcache官方教程

    1. **堆内存储**:最简单的存储方式,数据直接存储在 JVM 堆内存中。 2. **堆外存储**:利用 off-heap 内存来存储数据,可以有效减少 GC 的影响。 3. **磁盘存储**:将数据持久化到磁盘,适用于需要持久化存储的数据...

Global site tag (gtag.js) - Google Analytics