JVM
ZP741552720
学习笔记整理
展开
-
【JVM】G1收集器调优
1. 使用G1垃圾收集器 修改配置参数,获取到gc日志,使用GCViewer分析吞吐量和响应时间 -XX:+UseG1GC Throughput Min Pause Max Pause Avg Pause GC count 99.16% 0.00016s 0.0137s 0.00559s ...原创 2020-03-16 11:30:55 · 284 阅读 · 0 评论 -
【JVM】内存溢出实例
1. 堆内存溢出 @RestController public class HeapController { List<Person> list=new ArrayList<Person>(); @GetMapping("/heap") public String heap(){ ...原创 2020-03-16 10:55:26 · 175 阅读 · 0 评论 -
【JVM】工具
一、JDK命令行工具 1. jps 查看Java进程 C:\Users\Another>jps 7488 OmsOperationServiceApplication 10500 RemoteMavenServer 17432 Launcher 24024 Jps 4152 jar 10508 2. jinfo 查看和调整JVM配置参...原创 2020-03-16 10:51:27 · 240 阅读 · 0 评论 -
【JVM】参数使用
1. 如何设置需要使用的垃圾收集器 #串行 -XX:+UseSerivalGC -XX:+UseSerivalOldGc #并行 -XX:+UseParallelGC -XX:+UseParallelOldGC #并发收集器 -XX:+UseConcMarkSweepGC -XX:+UseG1GC 2. 标准参数 -version -help -server -cp 3. -X 参数 -...原创 2020-03-16 10:40:12 · 147 阅读 · 0 评论 -
【JVM】垃圾收集
一、垃圾收集算法 1. 标记-清除(Mark-Sweep) 算法分为两个阶段:首先标记出所需要回收的对象,在标记完成后统一回收所有被标记的对象 1.1 不足 效率问题,标记和清除两个过程效率都不高; 空间问题,标记清除之后会产生大量的连续的内存碎片,空间碎片太多会导致以后在程序运行中需要分配较大对象时,无法找到足够的连续内存而不得提前触发另一次垃圾收集动作 2. 复制算法(Copying) ...原创 2020-03-16 10:26:07 · 96 阅读 · 0 评论 -
【JVM】运行时数据区
运行时数据区 图示: Method Area(方法区) 方法区是各个线程内存共享的区域,在虚拟机启动时创建;用于存储已被虚拟机加载的类信息、常量、静态变量、即使编译器编译后的代码等数据 虽然Java虚拟机规范把方法区描述为堆的一个逻辑分布,但是方法区通常被称为Non-Heap(非堆),目的是与Java堆区分开;当方法区无法满足内存分配需求时,将抛出OutOfMemoryError异常 The ...原创 2020-03-15 14:09:46 · 90 阅读 · 0 评论 -
【JVM】类加载机制
一、类加载过程 1. 装载(Load) 通过一个类的全限定名 获取定义此类的二进制字节流 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 在Java堆中生成一个代表这个类的 java.lang.Class对象,作为对该方法区中这些数据的访问入口 2.链接(Link) 验证(Verify) 文件格式验证 元数据验证 字节码验证 符号引用验证 准备(Prepare) 为静态类...原创 2020-03-15 13:58:48 · 110 阅读 · 1 评论