JVM
文章平均质量分 96
沥寂
这个作者很懒,什么都没留下…
展开
-
JVM-垃圾收集器G1 & ZGC详解 & 安全点与安全区域(5)
很明显,在NUMA下,CPU访问本地存储器的速度比 访问非本地存储器快一些。-XX:G1HeapWastePercent(默认5%): gc过程中空出来的region是否充足阈值,在混合回收的时候,对Region回收都 是基于复制算法进行的,都是把要回收的Region里的存活对象放入其他Region,然后这个Region中的垃圾对象全部清 理掉,这样的话在回收过程就会不断空出来新的Region,一旦空闲出来的Region数量达到了堆内存的5%,此时就会立 即停止混合回收,意味着本次混合回收就结束了。....原创 2022-08-12 21:52:20 · 599 阅读 · 0 评论 -
JVM-垃圾收集器ParNew&CMS与底层三色标记算法详解(4)
就是当灰色对象要删除指向白色对象的引用关系时, 就将这个要删除的引用记录下来, 在并发扫描结束之后, 再将这些记录过的引用关系中的灰色对象为根, 重新扫描一次,这样就能扫描到白色的对象,将白色对象直接标记为黑 色(目的就是让这种对象在本轮gc清理中能存活下来,待下一轮gc的时候重新扫描,这个对象也有可能是浮动垃圾) 以上无论是对引用关系记录的插入还是删除, 虚拟机的记录操作都是通过写屏障实现的。黑色的对象代表已经扫描 过, 它是安全存活的, 如果有其他对象引用指向了黑色对象, 无须重新扫描一遍。......原创 2022-08-09 11:57:37 · 334 阅读 · 1 评论 -
JVM-对象创建与内存分配机制深度剖析(3)
1.jdk1.6 update14开始,在64bit操作系统中,JVM支持指针压缩2.jvm配置参数:UseCompressedOops,compressed压缩、oop(ordinary object pointer)对象指针3.启用指针压缩:XX:+UseCompressedOops(默认开启),禁止指针压缩:XX:UseCompressedOops。...原创 2022-08-04 14:47:33 · 165 阅读 · 0 评论 -
JVM-整体结构深度解析(2)
上图:同时局部变量的a和b的index是相同的,说明了a和b用的是同一个槽位,而一个槽位怎么可能放两个变量,所以肯定有个变量失效了,然后另一个变量才能够做到复用失效变量的槽位,这里就是局部变量a超出了作用域,失效了,然后局部变量b就复用了a的槽位,所以二者的index才会相同。:栈帧当中的局部变量表的槽位时可以重用的,如果一个局部变量过了其作用域,那么在其作用域之后申明的局部变量就很可能会复用过期局部变量的槽位。我们知道java栈是java虚拟机的一个重要的组成部分,在栈里进行线程操作,存放方法参数等等。.原创 2022-08-02 18:01:55 · 122 阅读 · 0 评论 -
JVM-从JDK源码级别剖析JVM类加载机制(1)
为何要使用双亲委派机制?1.沙箱安全机制自己写的java.lang.String.class类不会被加载,这样便可以防止核心API库被随意篡改。原创 2022-08-02 15:46:09 · 112 阅读 · 0 评论