JVM
hywang94
这个作者很懒,什么都没留下…
展开
-
JVM——使用指南
一、JVM全局理解图:二、使用场景: 1、OOM(OutOfMemory) 可以通过如MAT分析dump文件,定位OOM 2、GC优化 通过不断调整,观察GC日志的吞吐量和停顿时间,寻找最佳值 如使用如下设置:-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+UseG1GC -Xloggc:gc.log ,然后通过(在线分析...原创 2020-10-15 10:53:19 · 490 阅读 · 0 评论 -
JVM参数
一、参数类型: 1、标准参数 1)不随着JDK版本的不同而改变的,如java -version,java -help 2、-X参数 1)非标准参数,如java -Xint -version,java -xmixed -version 3、-XX参数 1)使用最多,进行相关设置 2)bool类型:-XX:[+/-] ,+或-进行开启或关闭,如 -XX:+UseG1GC...原创 2020-10-15 10:39:11 · 214 阅读 · 0 评论 -
JVM——垃圾回收机制
一、判断对象是否是垃圾 1、引用计数法 GC线程不定时回收时,如果对象被引用的话,年龄会加1,被回收掉一个对象就会减去1,当年龄为0岁,就会被垃圾回收机制认为是不可达对象,会被清理。 循环依赖问题:有两个对象A和B,当A = B;B = A ; A = null; B = null; 此时这两个对象就不知道到底为不为0,导致对象无法被回收。该方法已被淘汰。 2、可达性分析(根搜索法(GC Roots)) 由GC Root出发,开始寻找,看看某...原创 2020-10-14 15:12:28 · 180 阅读 · 0 评论 -
JVM内存模型
内存模型图: 一、堆内存划分 1.新生代(Eden:s0:s1=8:1:1) (对应Minor GC) 1.1 Eden区 新建对象存放在该区 1.2 Survivor区 1.2.1 S0区(from) 在Eden区活跃的对象会被移到该区 1.2.2 S1区(to) 同S0区一样,但...原创 2020-10-14 14:46:05 · 179 阅读 · 0 评论 -
JVM——运行时数据区
与虚拟机生命周期一致的区域(线程不安全)1、方法区各线程共享,虚拟机启动时创建 存储已被虚拟机加载的类信息、常量、静态变量,即编辑器编译后的代码等数据 常被描述为堆的一个逻辑部分,别名Non-Heap(非堆),为了区分java堆区 当无法满足内存分配时,抛出OutOfMemoryError异常 JDK8中是Metaspace(元空间),JDK6或7中是Perm Space(永久代) Run-Time Constant Pool(运行时常量池) 在方法区分配2、堆虚拟机所管理内存中最大原创 2020-10-13 15:41:29 · 78 阅读 · 0 评论