共通パラメータのJVMリスト(RPM)

パラメータ デフォルトまたは制限 説明
パラメータ デフォルト値 機能
-XX:-AllowUserSignalHandlers LinuxおよびSolarisに限られ、デフォルトでは有効になっていません Javaのプロセッサは、インストール・プロセスの信号、信号処理ベースの参照を可能にする:sun.misc.Signal、sun.misc.SignalHandler
-XX:+ DisableExplicitGC デフォルトで有効になって ()の実行にSystem.gcで呼び出して、明示的に禁止されています
-XX:+ FailOverToOldVerifier Java6の新たに導入されたオプションはデフォルトで有効になっています 新しいクラスのパリティチェックが失敗した場合、(失敗の理由を、古いチェッカーを使用:JDK1.2、JDK1.2にJDK6最高の下位互換性がクラスと大きな違いが情報の情報JDK6で存在しているので、そう検証エラーをチェックすることが新たな状況)が発生します
-XX:+ HandlePromotionFailure デフォルトで有効になってjava5以前にデフォルトで有効になっていない、Java6の 閉じる新生代コレクション保証
-XX:+ MaxFDLimit デフォルトで有効になって、Solarisのに限ります オペレーティングシステムで許可された最大に利用できるJavaプロセスのファイル記述子を設定します。
-XX:PreBlockSpin = 10 -XX:+ UseSpinningはJava6のために有効にする必要がありますが、すでにデフォルト、デフォルトのスピン10回で有効になっています スピン - スピンコントロールマルチスレッドロックの最適化の数
-XX:-RelaxAccessControlCheck デフォルトでは有効になっていません クラスのバリデータ、アクセス制御チェックの緩和、同様のsetAccessibleでの反射の影響で
-XX:+ ScavengeBeforeFullGC デフォルトで有効になって マイナーGC前のフルGCトリガ
-XX:+ UseAltSigs デフォルトで有効になって、Solarisのに限ります 代替候補信号SIGUSR1とSIGUSR2の使用を可能にする、送信信号の他のアプリケーションとの競合を防ぐために
-XX:+ UseBoundThreads デフォルトで有効になって、Solarisのに限ります 飢餓状態にスレッドの数を減らし、スレッドをカーネルに、すべてのユーザー・スレッドをバインドします(任意のCPU時間を得ることはありません)の
-XX:-UseConcMarkSweepGC デフォルトでは有効になっていません CMSは、低一時停止ガベージコレクタは、停止時間FGCを減らし有効
-XX:+ UseGCOverheadLimit デフォルトで有効になって GCは、時間制限を実行します。GCは、時間がかかりすぎる場合は、それがOOMがスローされます
-XX:+ UseLWPSynchronization デフォルトで有効になっリミテッドのSolaris、 スレッドの同期を交換する軽量プロセス(カーネルスレッド)の使用
-XX:-UseParallelGC 有効にすると-server、他の状況下では、デフォルトでは有効になっていません パラレル、シングルスレッドマークスイープ・コンパクトガベージコレクタの旧世代を使用して、新しい世代のための明確な方針
-XX:-UseParallelOldGC デフォルトでは有効になっていません 古いものと明らかに同時ガベージコレクタの新世代の使用のための方針
-XX:-UseSerialGC 有効にすると-client、他の状況下では、デフォルトでは有効になっていません シリアルガベージコレクタ
-XX:-UseSpinning java1.4.2、手動で有効にする1.5必要性、Java6のデフォルトで有効になって マルチスレッド最適化のスピンロックを有効にします
-XX:+ UseTLAB -clientオプションはデフォルトで有効になっていません前に、使用中1.4.2、残りのバージョンは、デフォルトで有効になっています スレッドローカルキャッシュを有効にします
-XX:+ UseSplitVerifier デフォルトで有効になってjava5デフォルトでは有効になっていない、Java6の クラスバリの新しいタイプを使用して
-XX:+ UseThreadPriorities デフォルトで有効になって ローカルスレッドの優先順位を使用します
-XX:+ UseVMInterruptibleIO デフォルトで有効になっリミテッドのSolaris、 Solarisでは、割り込みスレッドの実行が許可されています

性能パラメータ:

パラメータ デフォルトまたは制限 説明
-XX:+ AggressiveOpts デフォルトで有効にJDK 5を導入した後、更新6が、手動で有効にする必要があり、JDK6 JVM開発チームの最新のチューニングの結果を有効にします。例えば、コンパイラの最適化、偏ったロック、コレクションや他の旧世代の並列用
-XX:CompileThreshold = 10000 1000年 JITコンパイラによって、方法が閾値をトリガマシンコードにコンパイルされ、この方法は、このようなトーン1000コールの数として理解することができる、マシンコードメソッドにコンパイルされます
-XX:LargePageSizeInBytes = 4メートル デフォルトの4メートル、AMD64ビット:2メートル 設定し、ヒープメモリのメモリページサイズ
-XX:MaxHeapFreeRatio = 70 70 見つかった空きヒープメモリが全体の推定値の70%を占めている場合GCは、収縮が上限値を推定した後、
-XX:MaxNewSize =サイズ 1.3.1 Sparc: 32m, 1.3.1 x86: 2.5m 新生代占整个堆内存的最大值
-XX:MaxPermSize=64m 5.0以后: 64 bit VMs会增大预设值的30%, 1.4 amd64: 96m, 1.3.1 -client: 32m, 其他默认 64m Perm(俗称方法区)占整个堆内存的最大值
-XX:MinHeapFreeRatio=40 40 GC后,如果发现空闲堆内存占到整个预估上限值的40%,则增大上限值
-XX:NewRatio=2 Sparc -client: 8, x86 -server: 8, x86 -client: 12, -client: 4 (1.3), 8 (1.3.1+), x86: 12, 其他默认 2 新生代和年老代的堆内存占用比例, 例如2表示新生代占年老代的1/2,占整个堆内存的1/3
-XX:NewSize=2.125m 5.0以后: 64 bit Vms 会增大预设值的30%, x86: 1m, x86, 5.0以后: 640k, 其他默认 2.125m 新生代预估上限的默认值
-XX:ReservedCodeCacheSize=32m Solaris 64-bit, amd64, -server x86: 48m, 1.5.0_06之前, Solaris 64-bit amd64: 1024m, 其他默认 32m 设置代码缓存的最大值,编译时用
-XX:SurvivorRatio=8 Solaris amd64: 6, Sparc in 1.3.1: 25, Solaris platforms 5.0以前: 32, 其他默认 8 Eden与Survivor的占用比例。例如8表示,一个survivor区占用 1/8 的Eden内存,即1/10的新生代内存,为什么不是1/9? 因为我们的新生代有2个survivor,即S0和S1。所以survivor总共是占用新生代内存的 2/10,Eden与新生代的占比则为 8/10
-XX:TargetSurvivorRatio=50 50 实际使用的survivor空间大小占比。默认是50%,最高90%
-XX:ThreadStackSize=512 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.
-XX:+UseCompressedStrings Java 6 update 21有一选项 其中,对于不需要16位字符的字符串,可以使用byte[] 而非char[]。对于许多应用,这可以节省内存,但速度较慢(5%-10%)
-XX:+OptimizeStringConcat 在Java 6更新20中引入 优化字符串连接操作在可能的情况下

调试参数:

参数 默认值或限制 说明
-XX:-CITime   打印发费在JIT编译上的时间
-XX:ErrorFile=./hs_err_pid<pid>.log JDK6中引入 错误文件
-XX:-ExtendedDTraceProbes JDK6中引入仅在Solaris 启用性能的影响DTrace探测器
-XX:HeapDumpPath=./java_pid<pid>.hprof 1.4.2 update 12, 5.0 update 7 指定HeapDump的文件路径或目录
-XX:-HeapDumpOnOutOfMemoryError 1.4.2 update 12, 5.0 update 7 当抛出OOM时进行HeapDump
-XX:OnError=”<cmd args>;<cmd args>” 1.4.2 update 9 当发生错误时执行用户指定的命令
-XX:OnOutOfMemoryError=”<cmd args>; <cmd args>” 1.4.2 update 12, 6 当发生OOM时执行用户指定的命令
-XX:-PrintClassHistogram 1.4.2 当Ctrl+Break发生时打印Class实例信息,与jmap -histo相同
-XX:-PrintConcurrentLocks 6 当Ctrl+Break发生时打印java.util.concurrent的锁信息, 与jstack -l相同
-XX:-PrintCommandLineFlags 5 打印命令行上的标记
-XX:-PrintCompilation   当方法被编译时打印信息
-XX:-PrintGC   当GC发生时打印信息
-XX:-PrintGCDetails 1.4.0 打印GC详细信息
-XX:-PrintGCTimeStamps 1.4.0 打印GC用时
-XX:-PrintTenuringDistribution   打印Tenuring年龄信息
-XX:-TraceClassLoading   跟踪类加载
-XX:-TraceClassLoadingPreorder 1.4.2 跟踪所有加载的引用类
-XX:-TraceClassResolution 1.4.2 跟踪常量池的变化
-XX:-TraceClassUnloading   跟踪类的卸载
-XX:-TraceLoaderConstraints 6 Trace recording of loader constraints
-XX:+PerfSaveDataToFile   退出时保存jvmstat二进制文件
-XX:ParallelGCThreads=   设置新生代与老年代并行垃圾回收器的线程数
-XX:+UseCompressedOops   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 representation node count less than this value. The limit used by the server compiler is a function of this value, not the actual value. The default value varies with the platform on which the JVM is running.
-XX:InitialTenuringThreshold=7   设置初始的对象在新生代中最大存活次数
-XX:MaxTenuringThreshold=   设置对象在新生代中最大的存活次数,最大值15,并行回收机制默认为15,CMS默认为4
 

转自 :https://www.jianshu.com/p/00a7a023adf3

おすすめ

転載: www.cnblogs.com/xuningchuanblogs/p/11441535.html