jvm
文章平均质量分 65
Virgo_Zgp
这个作者很懒,什么都没留下…
展开
-
关于内存分配
动态年龄判定:每次 Minor GC :对象年龄从小到大累加和超过TargetSurvivorRatio(默认50%) , 则将>=这个年龄阈值的对象全部复制回收到老年代。比如MaxTenuringThreshold(晋升老年代的年龄阈值) = 15,1.年龄1的对象占用了33%2.年龄2的对象占用33%3.年龄3的对象占用34%年龄1+年龄2的对象占用超过 50% 则将年龄2,年龄3的对象复制回收到老年代。空间分配担保:1.每次 Minor GC 前进行判定:老年代剩余空间大于新原创 2021-07-14 10:33:14 · 86 阅读 · 0 评论 -
关于JAVA常量池的理解
静态常量池class文件中的常量池,编译成class文件后储存在class文件中。主要包括字符串和数字字面量; 类、方法等信息 具体可以参照《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》第三部分第六章6.3 class类文件结构。需要注意的是,并不是所有的字面量都会存入常量池,下面引用一段类代码我们可以在jclasslib工具中更直观地查看类文件结构看到只有比较大的数字字面量、String字面量、final修饰的字面量(不包括局部变量)会存储在常量池,其他的会直接嵌入指令中( -原创 2021-06-08 21:10:26 · 166 阅读 · 0 评论 -
记录一次线上对外接口服务堆区OOM问题的跟踪
第一次问题:kubernetes pod频繁重启 容器内存占用不断升高 达到10g就自动重新构建jvm参数设置:-Xms4g -Xmx10g -XX:ParallelGCThreads=3 -XX:+UseParNewGC开始就怀疑是OOM问题导致服务崩溃,想看日志有没有打印OOM异常信息,可是每次重启都把原来映射到持久卷的日志文件覆盖(在这里吐槽一下同事,为什么日志不分日期,为什么每次重启容器日志都会被覆盖)所以加了两个参数:OOM时输出dumap文件:-XX:+HeapDumpOnOutOfM原创 2021-06-01 13:03:09 · 206 阅读 · 0 评论