JVM系列【6】GC与调优2.md
2020-10-17 18:41
573 查看
JVM系列笔记目录
- 虚拟机的基础概念
- class文件结构
- class文件加载过程
- jvm内存模型
- JVM常用指令
- GC与调优
了解HotSpot常用命令行参数
JVM的命令行参数参考: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
-标准 所有版本支持
-X 非标准 特定版本支持
-XX 不稳定 下个版本可能会取消
常见和本文中可能用到的参数记录一下,具体垃圾回收器的参数后续调优的详细说明。
参数 | 说明 |
---|---|
-Xmx | 最大可用内存 |
-Xms | 初始内存,一般和-Xmx相同,避免重新分配 |
-Xmn | 年轻代大小,JVM内存=年轻代+老年代大小+永久代(一般64M) |
-XX:+PrintFlagsInitial | 打印默认参数值 |
-XX:+PrintFlagsFinal | 打印最终参数值 |
-XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps |
打印GC情况、GC详细日志、GC日志时间戳 |
常见垃圾回收器组合参数设定:(1.8)
如何查看JVM默认的垃圾回收器?
java -XX:+PrintCommandLineFlags -version
- 通过GC日志来辨别是何种垃圾回收器
常见垃圾回收器组合参数设定:(1.8版本的)
>1. -XX:+UseSerialGC = Serial New (DefNew) + Serial Old 小型程序使用,默认情况下不会是这种选项,HotSpot会根据计算及配置和JDK版本自动选择收集器 >2. -XX:+UseParNewGC = ParNew + SerialOld 这个组合已经很少用(在某些版本中已经废弃) >3. -XX:+UseConc(urrent)MarkSweepGC = ParNew + CMS + Serial Old >4. -XX:+UseParallelGC = Parallel Scavenge + Parallel Old (1.8默认) 【PS + SerialOld】 >5. -XX:+UseParallelOldGC = Parallel Scavenge + Parallel Old >6. -XX:+UseG1GC = G1
PS的GC日志详解
每一种垃圾回收器的日志是不一样。这里提供一个样例来详细解释PS的GC日志。
public class HelloGC{ public static void main(String[] args){ System.out.println("HelloGC!"); List list = new ArrayList(); for(;;){ // 死循环中每次分配1M大小的数组,存放在list中,JVM内存不足的时候会产生GC byte[] b = new byte[1024*1024]; list.add(b); } } }
编译后启动命令:
java -Xmn10M -Xms40M -Xmx60M -XX:+PrintCommandLineFlags -XX:+PrintGC -XX:+UseParallelGC HelloGC
这里设置了最大内存为60M,初始内存为40M,新生代的内存为10M,使用PS垃圾回收器,并打印GC的回收情况。程序运行很快就会产生GC日志。
回收的日志情况:
HeapDump情况,0x000xxxx内存地址指的是:起始地址、使用空间结束地址、整体空间结束地址;
知识分享,转载请注明出处。学无先后,达者为先!
相关文章推荐
- 深入JVM系列(二)之GC机制、收集器与GC调优
- 深入JVM系列(二)之GC机制、收集器与GC调优
- JVM系列(五):JVM 配置常用参数和常用 GC 调优策略!
- 深入JVM系列(二)之GC机制、收集器与GC调优
- 深入JVM系列(二)之GC机制、收集器与GC调优
- 深入JVM系列(二)之GC机制、收集器与GC调优
- 深入JVM系列(二)之GC机制、收集器与GC调优(转)
- 深入JVM系列(二)之GC机制、收集器与GC调优
- 深入JVM系列(二)之GC机制、收集器与GC调优
- 深入JVM系列(二)之GC机制、收集器与GC调优
- 深入JVM系列(二)之GC机制、收集器与GC调优
- jvm系列(六):Java服务GC参数调优案例
- 深入JVM系列(二)之GC机制、收集器与GC调优
- JVM 垃圾回收机制与GC性能调优
- JVM调优——之CMS GC日志分析
- jvm系列(三):java GC算法 垃圾收集器
- 描述下jvm的gc机制,常用的jvm调优方法,oom如何产生,如何处理oom 问题?
- JVM系列之 -------------------- jvm调优
- JVM调优:并发GC和逃逸分析
- jvm系列(七):jvm调优-工具篇