Behavioral Options
| Option and Default Value | Description |
|---|---|
| -XX:-AllowUserSignalHandlers | Do not complain if the application installs signal handlers. (Relevant to Solaris and Linux only.) |
| -XX:AltStackSize=16384 | Alternate signal stack size (in Kbytes). (Relevant to Solaris only, removed from 5.0.) |
| -XX:-DisableExplicitGC | Disable calls to System.gc(), JVM still performs garbage collection when necessary. |
| -XX:+FailOverToOldVerifier | Fail over to old verifier when the new type checker fails. (Introduced in 6.) |
| -XX:+HandlePromotionFailure | The youngest generation collection does not require a guarantee of full promotion of all live objects. (Introduced in 1.4.2 update 11) [5.0 and earlier: false.] |
| -XX:+MaxFDLimit | Bump the number of file descriptors to max. (Relevant to Solaris only.) |
| -XX:PreBlockSpin=10 | Spin count variable for use with -XX:+UseSpinning. Controls the maximum spin iterations allowed before entering operating system thread synchronization code. (Introduced in 1.4.2.) |
| -XX:-RelaxAccessControlCheck | Relax the access control checks in the verifier. (Introduced in 6.) |
| -XX:+ScavengeBeforeFullGC | Do young generation GC prior to a full GC. (Introduced in 1.4.1.) |
| -XX:+UseAltSigs | Use alternate signals instead of SIGUSR1 and SIGUSR2 for VM internal signals. (Introduced in 1.3.1 update 9, 1.4.1. Relevant to Solaris only.) |
| -XX:+UseBoundThreads | Bind user level threads to kernel threads. (Relevant to Solaris only.) |
| -XX:-UseConcMarkSweepGC | Use concurrent mark-sweep collection for the old generation. (Introduced in 1.4.1) |
| -XX:+UseGCOverheadLimit | Use a policy that limits the proportion of the VM's time that is spent in GC before an OutOfMemory error is thrown. (Introduced in 6.) |
| -XX:+UseLWPSynchronization | Use LWP-based instead of thread based synchronization. (Introduced in 1.4.0. Relevant to Solaris only.) |
| -XX:-UseParallelGC | Use parallel garbage collection for scavenges. (Introduced in 1.4.1) |
| -XX:-UseParallelOldGC | Use parallel garbage collection for the full collections. Enabling this option automatically sets -XX:+UseParallelGC. (Introduced in 5.0 update 6.) |
| -XX:-UseSerialGC | Use serial garbage collection. (Introduced in 5.0.) |
| -XX:-UseSpinning | Enable naive spinning on Java monitor before entering operating system thread synchronizaton code. (Relevant to 1.4.2 and 5.0 only.) [1.4.2, multi-processor Windows platforms: true] |
| -XX:+UseTLAB | Use thread-local object allocation (Introduced in 1.4.0, known as UseTLE prior to that.) [1.4.2 and earlier, x86 or with -client: false] |
| -XX:+UseSplitVerifier | Use the new type checker with StackMapTable attributes. (Introduced in 5.0.)[5.0: false] |
| -XX:+UseThreadPriorities | Use native thread priorities. |
| -XX:+UseVMInterruptibleIO | Thread interrupt before or with EINTR for I/O operations results in OS_INTRPT. (Introduced in 6. Relevant to Solaris only.) |
Performance Options
| Option and Default Value | Description |
|---|---|
| -XX:+AggressiveOpts | Turn on point performance compiler optimizations that are expected to be default in upcoming releases. (Introduced in 5.0 update 6.) |
| -XX:CompileThreshold=10000 | Number of method invocations/branches before compiling [-client: 1,500] |
| -XX:LargePageSizeInBytes=4m | Sets the large page size used for the Java heap. (Introduced in 1.4.0 update 1.) [amd64: 2m.] |
| -XX:MaxHeapFreeRatio=70 | Maximum percentage of heap free after GC to avoid shrinking. |
| -XX:MaxNewSize=size | Maximum size of new generation (in bytes). Since 1.4, MaxNewSize is computed as a function of NewRatio. [1.3.1 Sparc: 32m; 1.3.1 x86: 2.5m.] |
| -XX:MaxPermSize=64m | Size of the Permanent Generation. [5.0 and newer: 64 bit VMs are scaled 30% larger; 1.4 amd64: 96m; 1.3.1 -client: 32m.] |
| -XX:MinHeapFreeRatio=40 | Minimum percentage of heap free after GC to avoid expansion. |
| -XX:NewRatio=2 | 这个是指new gen 和 old gen 的比例 如果总的内存是20m 那么 new gen 是 20*1/3 |
| -XX:NewSize=2.125m | 这个是指new gen 的大小,试用其可以覆盖 NewRatio参数 |
| -XX:ReservedCodeCacheSize=32m | Reserved code cache size (in bytes) - maximum code cache size. [Solaris 64-bit, amd64, and -server x86: 48m; in 1.5.0_06 and earlier, Solaris 64-bit and and64: 1024m.] |
| -XX:SurvivorRatio=8 | enden 和每一个survivor的比例,以此为列,比例为8:1 |
| -XX:TargetSurvivorRatio=50 | Desired percentage of survivor space used after scavenge. |
| -XX:ThreadStackSize=512 | 每个线程使用VM stack 的大小 |
| -XX:+UseBiasedLocking | Enable biased locking. For more details, see this tuning example . (Introduced in 5.0 update 6.) [5.0: false] |
| -XX:+UseFastAccessorMethods | Use optimized versions of Get<Primitive>Field. |
| -XX:-UseISM | Use Intimate Shared Memory. [Not accepted for non-Solaris platforms.] For details, see Intimate Shared Memory . |
| -XX:+UseLargePages | Use large page memory. (Introduced in 5.0 update 5.) For details, see Java Support for Large Memory Pages . |
| -XX:+UseMPSS | Use Multiple Page Size Support w/4mb pages for the heap. Do not use with ISM as this replaces the need for ISM. (Introduced in 1.4.0 update 1, Relevant to Solaris 9 and newer.) [1.4.1 and earlier: false] |
| -XX:+UseStringCache | Enables caching of commonly allocated strings. |
| -XX:AllocatePrefetchLines=1 | Number of cache lines to load after the last object allocation using prefetch instructions generated in JIT compiled code. Default values are 1 if the last allocated object was an instance and 3 if it was an array. |
| -XX:AllocatePrefetchStyle=1 | Generated code style for prefetch instructions. 0 - no prefetch instructions are generate*d*, 1 - execute prefetch instructions after each allocation, 2 - use TLAB allocation watermark pointer to gate when prefetch instructions are executed. |
| -XX:-XX:+UseCompressedStrings | Use a byte[] for Strings which can be represented as pure ASCII. (Introduced in Java 6 Update 21 Performance Release) |
| -XX:+OptimizeStringConcat | Optimize String concatenation operations where possible. (Introduced in Java 6 Update 20) |
Debugging Options
| Option and Default Value | Description |
|---|---|
| -XX:-CITime | Prints time spent in JIT Compiler. (Introduced in 1.4.0.) |
| -XX:ErrorFile=./hs_err_pid<pid>.log | If an error occurs, save the error data to this file. (Introduced in 6.) |
| -XX:-ExtendedDTraceProbes | Enable performance-impacting dtrace probes. (Introduced in 6. Relevant to Solaris only.) |
| -XX:HeapDumpPath=./java_pid<pid>.hprof | Path to directory or filename for heap dump. Manageable . (Introduced in 1.4.2 update 12, 5.0 update 7.) |
| -XX:-HeapDumpOnOutOfMemoryError | Dump heap to file when java.lang.OutOfMemoryError is thrown. Manageable . (Introduced in 1.4.2 update 12, 5.0 update 7.) |
| -XX:OnError="<cmd args>;<cmd args>" | Run user-defined commands on fatal error. (Introduced in 1.4.2 update 9.) |
| -XX:OnOutOfMemoryError="<cmd args>; <cmd args>" | Run user-defined commands when an OutOfMemoryError is first thrown. (Introduced in 1.4.2 update 12, 6) |
| -XX:-PrintClassHistogram | Print a histogram of class instances on Ctrl-Break. Manageable . (Introduced in 1.4.2.) The jmap -histo command provides equivalent functionality. |
| -XX:-PrintConcurrentLocks | Print java.util.concurrent locks in Ctrl-Break thread dump. Manageable . (Introduced in 6.) The jstack -l command provides equivalent functionality. 使用concurrent包时可以用来查看线程死锁 |
| -XX:-PrintCommandLineFlags | Print flags that appeared on the command line. (Introduced in 5.0.) |
| -XX:-PrintCompilation | Print message when a method is compiled. |
| -XX:-PrintGC | Print messages at garbage collection. Manageable . |
| -XX:-PrintGCDetails | Print more details at garbage collection. Manageable . (Introduced in 1.4.0.) |
| -XX:-PrintGCTimeStamps | Print timestamps at garbage collection. Manageable (Introduced in 1.4.0.) |
| -XX:-PrintTenuringDistribution | Print tenuring age information. |
| -XX:-TraceClassLoading | Trace loading of classes. |
| -XX:-TraceClassLoadingPreorder | Trace all classes loaded in order referenced (not loaded). (Introduced in 1.4.2.) |
| -XX:-TraceClassResolution | Trace constant pool resolutions. (Introduced in 1.4.2.) |
| -XX:-TraceClassUnloading | Trace unloading of classes. |
| -XX:-TraceLoaderConstraints | Trace recording of loader constraints. (Introduced in 6.) |
| -XX:+PerfSaveDataToFile | Saves jvmstat binary data on exit. |
本文详细介绍了JVM的行为选项和性能选项,包括信号处理、垃圾回收策略、同步机制等配置项及其默认值,帮助读者理解如何通过这些选项来调整JVM的行为以优化应用程序性能。
4816

被折叠的 条评论
为什么被折叠?



