Sparc: 512, Solaris x86: 320 (5.0以前 256), Sparc 64 bit: 1024, Linux amd64: 1024 (5.0 以前 0), 其他默认 512.
线程堆栈大小
-XX:+UseBiasedLocking
JDK 5 update 6后引入,但需要手动启用, JDK6默认启用
启用偏向锁
-XX:+UseFastAccessorMethods
默认启用
优化原始类型的getter方法性能(get/set:Primitive Type)
-XX:-UseISM
默认启用
启用solaris的ISM
-XX:+UseLargePages
JDK 5 update 5后引入,但需要手动启用, JDK6默认启用
启用大内存分页
-XX:+UseMPSS
1.4.1 之前: 不启用, 其余版本默认启用
启用solaris的MPSS,不能与ISM同时使用
-XX:+UseStringCache
默认开启
启用缓存常用的字符串。
-XX:AllocatePrefetchLines=1
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
1
Generated code style for prefetch instructions.0 – no prefetch instructions are generated,1 – execute prefetch instructions after each allocation,2 – use TLAB allocation watermark pointer to gate when prefetch instructions are executed.
Enables the use of compressed pointers (object references represented as 32 bit offsets instead of 64-bit pointers) for optimized 64-bit performance with Java heap sizes less than 32gb.
-XX:+AlwaysPreTouch
Pre-touch the Java heap during JVM initialization. Every page of the heap is thus demand-zeroed during initialization rather than incrementally during application execution.
-XX:AllocatePrefetchDistance=
Sets the prefetch distance for object allocation. Memory about to be written with the value of new objects is prefetched into cache at this distance (in bytes) beyond the address of the last allocated object. Each Java thread has its own allocation point. The default value varies with the platform on which the JVM is running.
-XX:InlineSmallCode=
当编译的代码小于指定的值时,内联编译的代码
-XX:MaxInlineSize=35
内联方法的最大字节数
-XX:FreqInlineSize=
内联频繁执行的方法的最大字节码大小
-XX:LoopUnrollLimit=
Unroll loop bodies with server compiler intermediate