GC日志:
对于JVM内存配置参数:
-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3
-Xmx10240m:代表最大堆
-Xms10240m:代表最小堆,初始分配
-Xmn5120m:代表新生代
-XXSurvivorRatio=3:代表Eden:Survivor = 3 根据Generation-Collection算法(目前大部分JVM采用的算法),一般根据对象的生存周期将堆内存分为若干不同的区域,一般情况将新生代分为Eden ,两块Survivor; 计算Survivor大小, Eden:Survivor = 3,总大小为5120,3x+x+x=5120 x=1024
新生代大部分要回收,采用Copying算法,快!
老年代 大部分不需要回收,采用Mark-Compact算法
运行jar 程序时可以使用这种命令设置java 运行内存:
java -Xms2048m -Xmx2048m -Xmn512m -jar XXXX.jar
-Xss1m:HotSpot版本中栈的大小是固定的,是不支持拓展的。 java.lang.StackOverflowError
一般的方法调用是很难出现的,如果出现了可能会是无限递归
-XX:MetaspaceSize=256M: Metaspace扩容时触发FullGC的初始化阈值,也是最小的阈值
-XX:MetaspaceSize:设置元空间大小
-XX:MaxMetaspaceSize:设置元空间最大大小
-XX:+UseParNewGC: 会与并发的终身生成垃圾收集一起自动激活
-XX:+UseConcMarkSweepGC:并发标记清除,即使用CMS收集器
-XX:+PrintGCDetails:打印 gc 详细信息
-Xloggc:gc.log:将GC日志输出到gc.log文件中
-XX:+HeapDumpOnOutOfMemoryError参数表示当JVM发生OOM时,自动生成DUMP文件
使用-XX:HeapDumpPath配置的时候,需要保证目录的文件夹都是存在,因为它在到处dump文件的时候,不会帮你去创建不存在的目录。