随笔分类 -  搞懂JVM

摘要:JVM调优 GC调优是最后要做的工作,GC调优的目的可以总结为下面两点: 减少对象晋升到老年代的数量 减少FullGC的执行时间 通过监控排查问题及验证优化结果,可以分为: 命令监控:jps、jinfo、jstack、jmap、jstat、jhat 图形化监控:JConsole和VisualVM 阿 阅读全文
posted @ 2021-03-17 17:37 肆玖爺 阅读(1529) 评论(1) 推荐(0)
摘要:finalize /** *此代码演示了两点: *1.对象可以在被GC时自我拯救。 *2.这种自救的机会只有一次,因为一个对象的finalize()方法最多只会被系统自动调用一次 */ public class FinalizeEscapeGC { public static FinalizeEsc 阅读全文
posted @ 2021-03-17 15:43 肆玖爺 阅读(419) 评论(0) 推荐(0)
摘要:对象创建 类加载过后可以直接确定一个对象的大小 对象栈上分配是通过逃逸分析判定、标量替换实现的,即把不存在逃逸的对象拆散,将成员变量恢复到基本类型,直接在栈上创建若干个成员变量 选择哪种分配方式由Java堆是否规整决定,而Java堆是否规整又由所采用的垃圾收集器是否带有压缩整理 功能决定。因此,在使 阅读全文
posted @ 2021-03-17 15:40 肆玖爺 阅读(181) 评论(0) 推荐(0)
摘要:运行时数据区域 JDK8 之前的内存布局 JDK8 之后的 JVM 内存布局 JDK8 之前,Hotspot 中方法区的实现是永久代(Perm),JDK8 开始使用元空间(Metaspace),以前永久代中字符串常量、类静态变量移至堆内存,其他内容移至元空间,元空间直接在本地内存分配。 内存溢出 参 阅读全文
posted @ 2021-03-17 15:37 肆玖爺 阅读(412) 评论(0) 推荐(0)