JVM 配置参数

@bingoogolapple 2017-07-14 07:47:14发表于 bingoogolapple/bingoogolapple.github.io Java

通用配置

属性 描述 默认值
-server 默认已经开启了  
-XX:+DisableExplicitGC 显性的关闭手动 GC 功能  
-XX:-UseAdaptiveSizePolicy 关闭 AdaptiveSizePolicy,JVM 默认使用 AdaptiveSizePolicy 策略自动分配 Eden 和 Survivor 空间大小  
-XX:-OmitStackTraceInFastThrow 强制要求 JVM 始终抛出含堆栈的异常  
-XX:+UseGCLogFileRotation 开启回转日志文件  
-XX:+PrintGCDetails 可以记录下垃圾回收的事件细节  
-XX:+PrintGCDateStamps 参数可以记录下垃圾回收的时间戳  
-XX:+PrintGCApplicationStoppedTime 参数可以记录下垃圾回收的时间戳  
-XX:GCLogFileSize=10M 设置单个文件最大的文件大小  
-XX:NumberOfGCLogFiles=20 设置回转日志文件的个数  
-XX:+HeapDumpOnOutOfMemoryError 这个参数会在抛出 java.lang.OutOfMemoryError 异常时,dump 堆空间的数据到当前工作目录下的一个文件中  
-XX:HeapDumpPath= 指定 dump 文件的具体位置  
-XX:+PrintFlagsFinal 打印默认参数值  
-XX:+AlwaysPreTouch 启动时就把参数里说好了的内存全部舔一遍  
-XX:SurvivorRatio=n 年轻代中 Eden 区与两个 Survivor 区的比值。注意 Survivor 区有两个。如为:8,表示 Eden:Survivor=8:2,一个 Survivor 区占整个年轻代的1/10 8
-Xss 设置每个线程的堆栈大小。JDK5.0 以后每个线程堆栈大小为 1M,以前每个线程堆栈大小为 256K。根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右  
-Xms 初始堆大小  
-Xmx 最大堆大小,为了防止垃圾收集器在最小、最大之间收缩堆而产生额外的时间,我们通常把最大、最小设置为相同的值  
-XX:MaxTenuringThreshold 设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过 Survivor 区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在 Survivor 区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概率 15