JVM优化
文章平均质量分 94
欧冶渃
这个作者很懒,什么都没留下…
展开
-
内存模型以及如何判定对象已死问题
1.我们的数据类型必须是引用类型2.我们这个类型的数据所存储的数据必须是另外一块内存的起始地址。原创 2023-11-17 16:36:03 · 88 阅读 · 0 评论 -
JVM执行引擎以及调优
javac编译器将Person.java源码文件编译成class文件[我们把这里的编译称为前期编译],交给JVM运行,因为JVM只能认识class字节码文件。同时在不同的操作系统上安装对应版本的JDK,里面包含了各自屏蔽操作系统底层细节的JVM,这样同一份class文件就能运行在不同的操作系统平台之上,得益于JVM。这也是Write Once,Run Anywhere的原因所在。原创 2023-11-29 10:12:21 · 1048 阅读 · 0 评论 -
Java内存结构
进入old区的对象越少越好,也就是age越大越好,但是根据IBM的实验数据统计,98%的对象都是活不过一次GC的,那么剩下的也就是2%,15次GC最多存活的数据也就是30%,而且2%的对象也有活不过2次GC的,综合下来15次GC活下来的也就是10%。新生代中的可用内存:复制算法用来担保的内存为9:1可用内存中Eden:S1区为8:1即新生代中Eden:S1:S2 = 8:1:1现代的商业虚拟机都采用这种收集算法来回收新生代,IBM公司的专门研究表明,新生代中的对象大概98%是“朝生夕死”的。原创 2023-11-15 17:29:31 · 118 阅读 · 0 评论 -
JVM-类加载器
jvm的类加载流程原创 2023-08-01 09:46:00 · 673 阅读 · 0 评论 -
JVM的垃圾收集算法
标记清除算法复制算法标记 - 整理算法常见整理算法分代收集算法分代收集三大假说其他垃圾收集算法原创 2023-11-21 10:55:26 · 360 阅读 · 0 评论 -
垃圾收集器的种类及概述
非标准参数,也就是在JDK各个版本中可能会变动使用得最多的参数类型非标准化参数,相对不稳定,主要用于JVM调优和Debug格式:-XX:[+-] +或-表示启用或者禁用name属性比如:-XX:+UseConcMarkSweepGC 表示启用CMS类型的垃圾回收器 -XX:+UseG1GC 表示启用G1类型的垃圾回收器格式:-XX=表示name属性的值是value比如:-XX:MaxGCPauseMil原创 2023-11-22 11:29:11 · 954 阅读 · 0 评论 -
G1垃圾收集器
G1的一个Region大小可以单独设定,可以1-32M,设置需要已2的n次幂来设置,因为很多算法都是已2的n次幂来计算的,所以Region大小也要按照这个来实现G1虽然保留了新老年代的概念,但是G1把他们分成了一个一个的Region。因为Store Buffer导致读写的顺序不一致,而写屏障可以解决这个问题。原创 2023-11-24 11:25:15 · 958 阅读 · 0 评论 -
CMS垃圾收集器深入解析
(1)初始标记(2)并发标记(3)(4)在这个阶段发生(5)重新标记(6)并发清除。原创 2023-11-23 15:36:52 · 997 阅读 · 0 评论 -
JVM运行时的优化
对象逃逸的本质是对象指针的逃逸。在计算机语言编译器优化原理中,逃逸分析是指分析指针动态范围的方法,它同编译器优化原理的指针分析和外形分析相关联。当变量(或者对象)在方法中分配后,其指针有可能被返回或者被全局引用,这样就会被其他方法或者线程所引用,这种现象称作指针(或者引用)的逃逸(Escape)。通俗点讲,如果一个对象的指针被多个方法或者线程引用时,那么我们就称这个对象的指针(或对象)的逃逸(Escape)。逃逸分析,是一种可以有效减少Java 程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法。原创 2023-11-30 10:21:15 · 756 阅读 · 0 评论 -
ZGC原理深入解析
阻塞内存分配请求触发:当垃圾来不及回收,垃圾将堆占满时,会导致部分线程阻塞。我们应当避免出现这种触发方式。日志中关键字是“Allocation Stall”。基于分配速率的自适应算法 :最主要的GC触发方式,其算法原理可简单描述为”ZGC根据近期的对象分配速率以及GC时间,计算出当内存占用达到什么阈值时触发下一次GC”。自适应算法的详细理论可参考彭成寒《新一代垃圾回收器ZGC设计与实现》一书中的内容。原创 2023-11-28 10:35:42 · 986 阅读 · 0 评论 -
JVM-类加载
jvm优化 类加载过程原创 2023-07-28 17:25:59 · 1236 阅读 · 0 评论