在java進程后追加-X參數可看到對應的擴展參數,命令:java -X
下面列出了各個廠商的輸出,可以看到IBM的幫助最詳細而且是中文的,有意思。
另外JRockit還支持一個 -XX參數,其輸出如下:
Global: UnlockDiagnosticVMOptions = false (default, writeable) - Enable processing of flags relating to field diagnostics UnlockInternalVMOptions = false (default) - Enable processing of internal, unsupported flags Class: FailOverToOldVerifier = true (default, writeable) - Fail over to old verifier when split verifier fails UseVerifierClassCache = true (default) - Try to cache java.lang.Class lookups for old verifier. UseClassGC = true (default) (Alias: -Xnoclassgc) - Allow GC of Java classes Threads: UseThreadPriorities = false (default) - Use native thread priorities DeferThrSuspendLoopCount = 4000 (default, writeable) - Number of iterations in safepoint loop until we try blocking SafepointSpinBeforeYield = 2000 (default, writeable) - Number of iterations in safepoint loop until we yield instead of pause (MP only) UseCompilerSafepoints = true (default) - Insert safepoint polls in compiled code DeferPollingPageLoopCount = -1 (default) - Number of iterations in safepoint loop before arming safepoint poll page UseMembarForTransitions = false (default) - Use membar to serialize thread states. UseNativeLockProfiling = false (default) - Profile use of internal JVM monitors JNI: CheckJNICalls = false (default) - Verify all arguments to JNI calls AbortOnFailedJNICheck = true (default) - Used with CheckJNICalls. If true, abort the JVM upon first JNI parameter error. ErrorOnFailedJNICheck = false (default) - Used with CheckJNICalls. If true, any errors will be signalled through a java.lang.Error. JDK: UseNewHashFunction = false (default) - Use HashMaps new hash function on jdks that does not do so by default TreeMapNodeSize = 64 (default) - Size of entry array in each java.util.TreeMap node MaxDirectMemorySize = 0 (default) - Maximum total size of NIO direct-buffer allocations UseLazyStackTraces = true (default) - Generate stacktraces lazily for thrown Exceptions ShowInternalMethodsInStackTrace = false (default, writeable) - Show JVM internal code in java stacktraces. OS: ReduceSignalUsage = false (default) (Alias: -Xrs) - Reduce the use of OS signals in Java and/or the VM MaxRecvBufferSize = 65536 (default) - Maximum size of byte buffer sent to recv MaxLargePageSize = 0 (default) - Use value as maximum size for large pages (if possible). GC: UseLowAddressForHeap = true (default) - Use low 4Gb address space for Java heap if possible. UseLargePagesForHeap = false (default) - Attempt to use large page translation for the Java heap. ForceLargePagesForHeap = false (default) - Force the use of large page translation for the Java heap. CompressedRefs = false (default) (Alias: -XXcompressedRefs) - Use 32-bit java references on 64-bit OS - implies a heap maximum of 4Gb (probably less) InitialHeapSize = 0 (default) (Alias: -Xms) - Initial size of Java Object heap MaxHeapSize = 0 (default) (Alias: -Xmx) - Maximum size of Java Object heap GCTimeRatio = 19 (default) - The ratio of time spent in garbage collection compared to outside of garbage collection. GCTimePercentage = 0.000000 (default) - The percentage of time spent in garbage collection of total run time. GCTrigger = 0 (default) (Alias: -XXgcTrigger) - The threshold of free heap before a concurrent GC is started ForceEarlyOC = true (default) - Force an early OC before old space is empty to avoid promotion failed. ForceEarlyOCMaxPercentage = 5.000000 (default) - Maximum percentage of heap that is allowed to have left before doing an early OC. ForceYCOnLargeAllocationFailed = false (default) - Force YC on a large allocation failure. UseNurseryEvacuation = false (default) - Try to evacuate the nursery when a promotion failed has occured. DisableEvacuationToNursery = false (default) - Disallows evacuation to move objects to where the nursery is. SemiRefPostponedPacketSize = 492 (default) - The number of references in a postponed semiref packet. SemiRefPrefetchDistance = 0 (default) - The number of reference packet indexes to prefetch, or 0 for no prefetch. FinalHandleParallelThreshold = -1 (default) - The minimum number of final handles needed to process them in parallel. FinalHandlePacketSize = 200 (default) - The number of handles in a final handle packet. MaximumNurseryPercentage = 95 (default) - Sets the maximum size of the nursery relative to the amount of free heap after the last old collection. AllowYCDuringOC = true (default) - Allow young collections during old collections. YcAlignAll = false (default) - Align all objects (with regards to YcAlignMaxSpill) during YC YcAlignMaxSpill = 40 (default) - Max spill allowed when aligning objects during YC. FullSystemGC = false (default) (Alias: -XXfullSystemGC) - Always run full GC (with full compaction) when System.gc() is called AllowSystemGC = true (default) (Alias: -XXnoSystemGC) - Run a GC when System.gc() is called GcCardTableParts = 1024 (default) - Initial number of parts of the card table array GcBalancePrefetchDistance = 4 (default) - Prefetch distance in a GC balance system workpacket GcBalancePacketSize = 493 (default) - Packet size of GC balance system workpackets NumGenConPrecleaningIterations = 3 (default) - Number of precleaning iterations for gencon. AllowEmergencyParSweep = true (default) - Allow the OC to temporarily change concurrent sweep to parallel if needed. TlaWasteLimit = 0 (default) (Alias: -XXlargeObjectLimit) - Internal. Use -XXtlaSize:wasteLimit instead. TlaMinSize = 0 (default) (Alias: -XXminBlockSize) - Internal. Use -XXtlaSize:min instead. TlaPreferredSize = 0 (default) - Internal. Use -XXtlaSize:preferred instead. GC::Compaction: UseFullCompaction = false (default) - All compactions will be full compactions. Internal. Use -XXcompaction:full instead. InternalCompactionPercentage = -1.000000 (default) - The percentage of the heap to compact for internal compaction. Internal. Use -XXcompaction:internalPercentage instead. ExternalCompactionPercentage = -1.000000 (default) - The percentage of the heap to compact for external compaction. Internal. Use -XXcompaction:externalPercentage instead. InitialCompactionPercentage = -1.000000 (default) - The initial percentage of the heap to compact, for both internal and external compaction. Internal. Use -XXcompaction:initialPercentage instead. UseCompaction = true (default) - Use compaction to reduce fragmentation. Internal. Use -XXcompaction:enable instead. UseAbortableCompaction = false (default) - The compactions should be possible to abort. Internal. Use -XXcompaction:abortable instead. NumCompactionHeapParts = 4096 (default) (Alias: -XXheapParts) - The number of heap parts in compaction heuristics. Internal. Use -XXcompaction:heapParts instead. InitialExternalReservedHeap = 4M (default) - The initial size of the memory reserved by external compaction. Internal. Use -XXcompaction:initialExternalReservedHeap instead. UseFixedExternalReservedHeap = false (default) - The size of the memory reserved by external compaction is fixed. Internal. Use -XXcompaction:externalReservedHeapIsFixed instead. MaxCompactionReferences = 0 (default) (Alias: -XXcompactSetLimit) - The maximum number of references to store in compaction before skipping. Internal. Use -XXcompaction:maxReferences instead. MaxCompactionReferencesPerObject = 0 (default) (Alias: -XXcompactSetLimitPerObject) - The maximum number of references to store per object in compaction. Internal. Use -XXcompaction:maxReferencesPerObject instead. InternalCompactionParts = -1 (default) (Alias: -XXinternalCompactRatio) - Deprecated. Use -XXcompaction:internalPercentage instead. ExternalCompactionParts = -1 (default) (Alias: -XXexternalCompactRatio) - Deprecated. Use -XXcompaction:externalPercentage instead. Object allocation: UseAllocPrefetch = true (default) - Use prefetch on object allocation RedoAllocPrefetch = true (default) - Do prefetch on object allocation from start of the allocated object AllocPrefetchLineLength = -1 (default) - Line length for allocation prefetch AllocPrefetchDistance = -1 (default) - Distance for allocation prefetch AllocChunkSize = -1 (default) - Size of chunks to clear/prefetch Javalock: UseLockProfiling = false (default) - Enable Java lock profiling. ThinLockContendedSpinCount = -1 (default) - Number of spins between each poll when acquiring a thin lock ThinLockContendedPollCount = -1 (default) - Number of polls between each short nap when acquiring a thin lock ThinLockConvertToFatThreshold = -1 (default) - Number of of short naps before converting thin lock to fat FatLockContendedSpinCount = -1 (default) - Number of spins between each poll when acquiring a fat lock FatLockContendedPollCount = -1 (default) - Number of polls between each short nap when acquiring a fat lock MonitorContendedSpinCount = -1 (default) - Number of spins between each poll when acquiring a monitor lock MonitorContendedPollCount = -1 (default) - Number of polls between each short nap when acquiring a monitor lock UseFatLockDeflation = true (default) - Try to deflate fat locks to thin FatLockDeflationThreshold = 50 (default) - Number of uncontended entries on lock before deflation occurs UseLockQueueLength = true (default) - Make threads go to sleep if contention exceeds # cpus UseFatSpin = true (default) (Alias: -XXdisableFatSpin) - Should we spin-try then acquiring a fat lock UseAdaptiveFatSpin = false (default) - Should we use adaptive spinning acquiring a fat lock UseThreadContentionMonitoring = true (default) - Allow thread contention monitoring JavaLock::LazyUnlocking: UseLazyUnlocking = true (default) (Alias: -XXlazyUnlocking) - Enable lazy unlocking UseLazyUnlockingInJIT = true (default) - Use lazy locks in JIT code UseLazyUnlockingClassBan = true (default) - Use class banning UseLazyUnlockingTransferClassBan = true (default) - Use transfer class banning JFR: FlightRecorder = true (default) - Enable flightrecorder FlightRecorderOptions = (null) (default) - Flight recorder arguments StartFlightRecording = (null) (default) - Start a Flight recording with args. Equivalent to using "start_flightrecording". Code memory: CodeBlockAbsorbtionSize = 16 (default) - Maximum extra size allowed for fitting code memory chunks FreeEmptyCodeBlocks = true (default) - Free unused code memory UseLargePagesForCode = false (default) - Attempt to use large page translation compiled code. MaxCodeMemory = 0 (default) - Maximum amount of memory used for generated code ReserveCodeMemory = false (default) - Reserve all memory for code at startup UseCodeGC = true (default) - Allow GC of discarded compiled code CodeGCThreshold = 0 (default) - Released byte threshold for initiating a code GC CodeGCReclaimThreshold = 0 (default) - Released byte threshold before compiler attempts to reclaim unused code space CodeGCUseReclaim = true (default) - Should Code GC attempt reclamation of unused code memory Compiler broker: MaxOptQueueLength = 0 (default) - Maximum allowed optimization queue length before JIT thread helps generate code OptThreads = 1 (default) - Number of background optimization threads JITThreads = 1 (default) - Number of background JIT threads JITThreadPrio = 5 (default) - Priority of background JIT threads OptThreadPrio = 5 (default) - Priority of background optimization threads DisableOptsAfter = -1 (default) (Alias: -Xnoopt) - Disable optimizations after n seconds Compiler: PreOpt = false (default) - Optimize all code on jit (first generation) UseCallProfiling = false (default) - Use call profiling on unoptimized code StrictFP = false (default) (Alias: -Xstrictfp) - Force strict FP for all methods CheckStacks = false (default) (Alias: -Xcheckedstacks) - Do explicit checks for stack overflow DevirtualizeAlways = false (default) - Forces devirtualization in jitted code UseStringCache = false (default) - Cache common arrays used in String constructor MethodCodeAlignment = 32 (default) - Byte alignment for start of method code UseInlineObjectAlloc = true (default) - Generate inlined object allocation code. UseOldLockMatching = false (default) - Compatibility mode lock matching JVMTI: JavaDebug = false (default) (Alias: -Xdebug) - Enable java debugging Management: DisableAttachMechanism = false (default) - Disable mechanism that allows tools to attach to this VM CrashOnOutOfMemoryError = false (default, writeable) - Crash JVM process on OutOfMemory ExitOnOutOfMemoryError = false (default, writeable) - Terminate JVM process on OutOfMemory ExitOnOutOfMemoryErrorExitCode = 51 (default, writeable) - Exit code for termination of JVM process on OutOfMemory HeapDiagnosticsOnOutOfMemoryError = false (default, writeable) - Print Java heap diagnostics on OutOfMemory HeapDiagnosticsPath = (null) (default, writeable) - When HeapDiagnosticsOnOutOfMemoryError is on, the path (filename or directory) of the dump file (defaults to jrockit_<pid>.oomdiag in the working directory) HeapDumpOnOutOfMemoryError = false (default, writeable) - Dump Java heap to a hprof binary format file on OutOfMemory HeapDumpOnCtrlBreak = false (default) - Dump heap to file in Ctrl-Break handler HeapDumpPath = (null) (default, writeable) - When HeapDumpOnOutOfMemoryError is on, the path (filename or directory) of the dump file (defaults to jrockit_<pid>.hprof in the working directory) SegmentedHeapDumpThreshold = 2G (default, writeable) - Generate a segmented heap dump (JAVA PROFILE 1.0.2 format) when the heap usage is larger than this HeapDumpSegmentSize = 1G (default) - Approximate segment size when generating a segmented heap dump StartMemleakOnPort = 0 (default, writeable) (Alias: -XXmemleak) - Listen for memleak connections on this port (0 for default) FlightRecordingDumpOnUnhandledException = false (default, writeable) - Generate a Flight Recording dump when a thread is terminated due to an unhandled exception FlightRecordingDumpPath = (null) (default, writeable) - When FlightRecordingDumpOnUnhandledException is on, the path (filename or directory) of the dump file (defaults to jrockit_<pid>_<thread id>.jfr in the working directory) Runtime: AbortOnCrash = false (default, writeable) - Abort the JVM in case of an crash. DumpOnCrash = true (default, writeable) - Generate a dump of the JVM state in case of a crash. CoreOnCrash = true (default, writeable) - Generate a core dump file of the JVM state in case of a crash. WaitOnCrash = false (default, writeable) - Wait for user debugger attach in case of a crash. AbortOnAssert = true (default, writeable) - Abort JVM on assertion CrashOnAssert = false (default, writeable) - Crash dump the JVM on assertion WaitOnAssert = false (default, writeable) - Spin and wait JVM on assertion NumaMemoryPolicy = (null) (default) - Numa memory policy (interleave, preferredlocal, strictlocal) BindToNumaNodes = (null) (default) - Bind process to Numa nodes BindToCPUs = (null) (default) - Bind process to CPUs UseFastTime = true (default) - Force/disable usage of hardware platform support for fast time UseJNIPinning = true (default) - Use pinning for Objects in call to GetPrimitiveArrayCritical etc |
下面是-X的輸出:
SUN JDK 6
-Xmixed mixed mode execution (default) -Xint interpreted mode execution only -Xbootclasspath:<directories and zip/jar files separated by ;> set search path for bootstrap classes and resources -Xbootclasspath/a:<directories and zip/jar files separated by ;> append to end of bootstrap class path -Xbootclasspath/p:<directories and zip/jar files separated by ;> prepend in front of bootstrap class path -Xnoclassgc disable class garbage collection -Xincgc enable incremental garbage collection -Xloggc:<file> log GC status to a file with time stamps -Xbatch disable background compilation -Xms<size> set initial Java heap size -Xmx<size> set maximum Java heap size -Xss<size> set java thread stack size -Xprof output cpu profiling data -Xfuture enable strictest checks, anticipating future default -Xrs reduce use of OS signals by Java/VM (see documentation) -Xcheck:jni perform additional checks for JNI functions -Xshare:off do not attempt to use shared class data -Xshare:auto use shared class data if possible (default) -Xshare:on require using shared class data, otherwise fail. The -X options are non-standard and subject to change without notice. |
JRockit JDK 6
-Xbootclasspath:<directories and zip/jar files separated by ;> set search path for bootstrap classes and resources -Xbootclasspath/a:<directories and zip/jar files separated by ;> append to end of bootstrap class path -Xbootclasspath/p:<directories and zip/jar files separated by ;> prepend in front of bootstrap class path -Xgcprio:[throughput|pausetime|deterministic] sets priority for the garbage collector (gc) throughput optimizes the gc behavior to achieve optimal throughput (default in server mode) pausetime optimizes the gc behavior to achieve minimal pause times deterministic optimizes the gc behavior to ensure extremely short pause times and limit the total number of those pauses within a prescribed window (this feature requires a valid license) -Xgc:[singlecon|gencon|singlepar|genpar] used to set a static garbage collector will override the -Xgcprio option singlecon use the single-spaced concurrent garbage collection algorithm (default in client mode) gencon use the generational concurrent garbage collection algorithm singlepar use the single-spaced parallel garbage collection algorithm genpar use the generational parallel garbage collection algorithm -Xms<size>[g|G|m|M|k|K] sets the initial Java heap size (ms) server mode: the default value is 25% of the amount of free physical memory in the system up to 64 MB with a minimum of 8 MB (default) client mode: the default value is 25% of the amount of free physical memory in the system up to 16 MB with a minimum of 8 MB -Xmx<size>[g|G|m|M|k|K] sets the maximum Java heap size (mx) server mode: the default value is the smallest of 75% of physical memory and 1536 MB (default) client mode: the default value is the smallest of 75% of physical memory and 64 MB -Xns<size>[g|G|m|M|k|K] sets the initial Java nursery size for generational collectors server mode: the default value is dynamic (throughput prio and genpar gc) or 10 MB per hardware thread (pausetime prio and gencon gc) client mode: the default value is 2 MB -Xss<size>[g|G|m|M|k|K] set initial stack size -Xpausetarget=<optimal_pause_time>[ms|s] JRockit will optimize the pause time to the given target, uses -Xgcprio:pausetime ms pause time specified in milliseconds (default) s pause time specified in seconds -Xnoclassgc disable class garbage collection -Xdebug enables debugging support in the VM -Xrun<library> loads and runs a library -Xmanagement enable the management agent -Xnoopt do not optimize code -Xstrictfp always use strict floating point calculations -Xverify do full bytecode verification -Xnohup or -Xrs JRockit will not process CTRL_LOGOFF_EVENT or SIGHUP events -Xverbose[:memory|load|jni|cpuinfo|codegen|opt|gcpause|gcreport] Enables verbose output. These are only a few of the available log modules. For more information on log modules refer to the documentation. -Xverboselog:<file> logs verbose output to a file -Xverbosetimestamp adds a timestamp to the verbose printout -Xverbosedecorations:<decorations> adds <decorations> to the verbose printout -Xcheck:jni perform additional checks for JNI functions For more information on these options refer to the documentation. The -X options are non-standard and subject to change without notice. |
IBM JDK 6
以下選項是非標準選項,可隨時更改,而不另行通知。 -Xbootclasspath:<path> 將引導類路徑設置為 <path> -Xbootclasspath/p:<path> 將 <path> 附加在引導類路徑前面 -Xbootclasspath/a:<path> 將 <path> 附加到引導類路徑后面 -Xrun<library>[:options] 裝入本機代理程序庫 (不推薦,贊成使用 -agentlib) -Xshareclasses[:options] 啟用類數據共享(使用幫助獲取詳細信息) -Xint 僅運行已解釋的(等同于 -Xnojit -Xnoaot) -Xnojit 禁用 JIT -Xnoaot 不運行預編譯代碼 -Xquickstart 通過延遲優化來減少啟動時間 -Xfuture 啟用最嚴格的檢查,預測未來的缺省值 -verbose[:{class|gcterse|gc|dynload|sizes|stack|debug}] -Xtrace[:option,...] 控制跟蹤使用 -Xtrace:help 以獲取更多詳細信息 -Xcheck[:option[:...]] 控制檢查使用 -Xcheck:help 以獲取更多詳細信息 以下選項的參數以字節為單位。 帶有后綴“k”(千)或“m”(兆)的值會進行相應的計算。 -Xmca<x> 將 RAM 類段增量設置為 <x> -Xmco<x> 將 ROM 類段增量設置為 <x> -Xmn<x> 將初始/最大新空間大小設置為 <x> -Xmns<x> 將初始新空間大小設置為 <x> -Xmnx<x> 將最大新空間大小設置為 <x> -Xmo<x> 將初始/最大舊空間大小設置為 <x> -Xmos<x> 將初始舊空間大小設置為 <x> -Xmox<x> 將最大舊空間大小設置為 <x> -Xmoi<x> 將舊空間增量設置為 <x> -Xms<x> 將初始內存大小設置為 <x> -Xmx<x> 將內存最大大小設置為 <x> -Xmr<x> 將記住的集合大小設置為 <x> -Xmrx<x> 將記住的集合的最大大小設置為 <x> -Xmso<x> 將操作系統線程堆棧大小設置為 <x> -Xiss<x> 將初始 java 線程堆棧大小設置為 <x> -Xssi<x> 將 java 線程堆棧增量設置為 <x> -Xss<x> 將最大 java 線程堆棧大小設置為 <x> -Xscmx<x> 將新共享類高速緩存的大小設置為 <x> -Xscminaot<x> 將為 AOT 數據保留的最小共享類高速緩存空間設置為 <x> -Xscmaxaot<x> 將允許用于存儲 AOT 數據的最大共享類高速緩存空間設置為 <x> -Xmine<x> 將堆擴展的最小大小設置為 <x> -Xmaxe<x> 將堆擴展的最大大小設置為 <x> 以下選項的參數以 0 至 1 的小數表示。 值為 0.3 表示請求百分比為 30% -Xminf<x> GC 之后自由堆的最小百分比 -Xmaxf<x> GC 之后自由堆的最大百分比 以下選項的參數以小數表示。 -Xgcthreads<x> 設置 GC 線程的數量 -Xnoclassgc 禁用動態類卸裝 -Xclassgc 啟用動態類卸裝 -Xalwaysclassgc 啟用每個 GC 的動態類卸裝 -Xnocompactexplicitgc 禁用系統 GC 的壓縮 -Xcompactexplicitgc 啟用每個系統 GC 的壓縮 -Xcompactgc 啟用壓縮 -Xnocompactgc 禁用壓縮 -Xlp 啟用大頁面支持 -Xrunjdwp:<options> 啟用調試,JDWP 標準選項 -Xjni:<options> 設置 JNI 選項 |