JVM
文章平均质量分 70
jvm笔记
轩*
闲散懒人
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM程序计数器
Program Counter Register,又叫程序计数寄存器在物理上程序计数器叫寄存器CPU只有把数据装载到寄存器中才能够正常执行指令。原创 2023-06-06 10:57:37 · 376 阅读 · 0 评论
-
jvm(gc调优)
从性能的角度看,通常关注三个方面(latency)和大多数情况下调优会侧重于其中一个或者两个方面的目标,很少有情况可以兼顾三个不同的角度。当然,除了上面通常的三个方面,也可能需要考虑其他 GC 相关的场景,例如,也可能与不合理的 GC 相关参数有关;或者,,GC 也会是个考虑的方面。原创 2023-06-13 15:57:32 · 967 阅读 · 0 评论 -
G1垃圾收集器
G1收集器是Java虚拟机的垃圾收集器理论进一步发展的产物G1收集器是基于“标记-整理”算法实现的收集器,也就是说它,这对于长时间运行的应用系统来说非常重要。它可以非常,既能让使用者明确指定在一个长度为M毫秒的时间片段内,消耗在垃圾收集上的时间不得超过N毫秒,具备了一些实时Java(RTSJ)的垃圾收集器的特征。G1收集器可以实现在基本它能够极力地避免全区域的垃圾收集,之前的收集器进行收集的范围都是整个新生代或老年代,而G1将整个Java堆(包括新生代、老年代)划分为多个大小固定的。原创 2023-06-12 17:23:52 · 449 阅读 · 0 评论 -
JVM垃圾回收器
语句: -XX:+UserSerialGC=serial+SerialOldserial新生代的复制算法SerialOld老年代的标记加整理算法单线程堆内存较小,适合个人电脑。原创 2023-06-12 10:29:20 · 137 阅读 · 0 评论 -
JVM垃圾回收算法(标记清除、标记整理、复制)
和标记清除一样,标记整理的第一个阶段也是对垃圾对象进行标记,区别主要在第二个步骤,即整理。所谓的整理就是避免之前标记清除时的内存碎片的问题,他就会在清除的过程中,会把可用的对象向前给他移动,这样的话让内存更为紧凑,这就是整理的过程。整理之后,就能发现内存变的更紧凑了,即连续的空间就更多了,这样就不会造成内存碎片。复制算法比较特殊,他把内存区域划分成了大小相等的两块儿区域,左边区域称之为FROM,右边区域称之为TO,其中TO这个区域始终空闲着,即里面一个对象都没有。原创 2023-06-08 17:44:41 · 3342 阅读 · 2 评论 -
JVM《五种引用》强、软、弱、虚、终结器
我们平时在用的所有的引用都属于强引用。比如,new了一个对象,同等号赋值给了一个变量,那么这个变量强引用了刚刚的对象。强引用的特点是,只要沿着GC Root的引用,能够找到他,那么他就不会被垃圾回收。只有【强引用】引用该对象,该对象才能被垃圾回收。原创 2023-06-08 16:05:33 · 228 阅读 · 0 评论 -
JVM垃圾回收《引用计数法和可达性分析法》
在JVM里面,要判断一个对象是否可以被回收,最重要的是判断这个对象是否还在被使用,只有没被使用的对象才能回收。原创 2023-06-08 11:09:12 · 174 阅读 · 0 评论 -
JVM直接内存
1.不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域,不受JVM内存回收管理2.直接内存是在Java堆外的、直接向系统申请的内存区间来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存3.通常,访问直接内存的速度会优于Java堆。即读写性能高4.因此出于性能考虑,读写频繁的场合可能会考虑使用直接内存5. Java的NIO库允许Java程序使用直接内存,用于数据缓冲区。原创 2023-06-08 10:21:43 · 384 阅读 · 0 评论 -
StringTable(字符串常量池)性能调优
1、常量池中的字符串仅是符号,第一次用到时才变为对象例如 String X=“a”;第一次用到的时候会将他存入常量池2、利用串池的机制,来避免重复创建字符串对象例如 String X1=“a”;第二次出现了就不会存到常量池了而是直接用new 出来的放在堆里吗,堆里的a和常量池里的a不相等可以使用方法,主动将串池中还没有的字符串对象放入串池JDK1.8中 将这个字符串对象尝试放入串池,如果有则并不会放入,如果没有则放入串池, 指向堆空间中的String对象并返回这个对象。原创 2023-06-07 17:23:10 · 281 阅读 · 1 评论 -
JVM堆(Heap)
一个JVM实例只有一个堆内存,堆也是Java内存管理的核心区域,堆在JVM启动的时候创建,其空间大小也被创建,是JVM中最大的一块内存空间,所有线程共享Java堆像程序计数器、本地方法栈、虚拟机栈都是线程私有的,而堆(Heap)、方法区都是线程共享的区域。通过new关键字创建的对象都会使用堆内存。原创 2023-06-06 17:54:08 · 227 阅读 · 0 评论 -
JVM栈内存溢出+本地方法栈
jvm栈内存溢出原因:1.栈帧过多,2.栈帧过大原创 2023-06-06 16:09:56 · 310 阅读 · 0 评论 -
jvm的栈
jvm栈的英文全称是(Java virtual machine stacks)一个栈由多个栈帧组成,一个线程,对应着一个栈,如果是多个线程,就对应多个虚拟机栈原创 2023-06-06 14:47:39 · 257 阅读 · 0 评论
分享