当前位置: 首页 > news >正文

福州云建站模版艺梵科技 网站建设

福州云建站模版,艺梵科技 网站建设,外企外贸是做什么的,图片描述 wordpress这部分内容主要是为了稍后介绍各款垃圾收集器时做前置知识铺垫#xff0c;如果对这部分内容感到枯燥或者疑惑#xff0c;可以先放下看#xff0c;等后续遇到要使用它们的实际场景、实际问题时再结合问题#xff0c;再回来阅读和理解。 记忆集和卡集 前面在分代收集理论那…这部分内容主要是为了稍后介绍各款垃圾收集器时做前置知识铺垫如果对这部分内容感到枯燥或者疑惑可以先放下看等后续遇到要使用它们的实际场景、实际问题时再结合问题再回来阅读和理解。 记忆集和卡集 前面在分代收集理论那一节稍微讲到对象不是孤立的对象之间存在跨代引用。如果还是不大明白看我下面这个例子老年代引用年轻代 public class ClassRoomLocalCache {// 静态变量 map以及 map 中引用的 ClassRoom 类型变量大概熬过默认的 15 次垃圾收集都会晋升到老年代private static final MapString,ClassRoom map new ConcurrentHashMap();public static void addStudent(String classRoomId) {// ......// 运行时新初始化了一个对象 Student 对象实例假设在年轻代分配内存// 老年代引用年轻代map.get(classRoomId).getUsers().add(new Student(127, 李华, 22));}Getterprivate static class ClassRoom {private String id;private String name;private Integer num;private ListStudent users;}AllArgsConstructorprivate static class Student {private String id;private String name;private Integer age;}}再回一下前面提到的经验法则三为什么说跨代引用相对于同代引用来说仅占极少数 因为存在互相引用关系的两个对象是应该倾向于同时生存或者同时消亡的。例如上面程序中的这个例子稍微结合例子解释下 举个例子如果某个新生代对象存在跨代引用由于老年代对象难以消亡该引用会使得新生代对象在收集时同样得以存活进而在年龄增长之后晋升到老年代中这时跨代引用也随即被消除了。 其实上面说的只是一个经验法则或者说是理论实际上并没有解决当需要在年轻代gc 时因可能存在跨在引用为了找出该区域中的存活对象不得不在固定的GC Roots之外再额外遍历整个老年代中所有对象来确保可达性分析结果的正确性。 事实上并不只是新生代、老年代之间才有跨代引用的问题所有涉及部分区域收集Partial GC行为的垃圾收集器G1、ZGC都会面临相同的问题。 可以想一下如果是你你会怎么设计解决这个问题 由于跨代引用占极少数我想最简单的实现的就是维护一个对象数组每当有老年代对象引用年轻代对象就把老年代对象存储到这个数组中然后在年轻代收集时把这个数组的对象一并加入到gc roots 中去进行扫描。 实际上JVM 的设计者的思路也大概是这样就是在收集区域可以理是新生代开辟一块小内存维护一个数据结构这个抽象数据结构用于记录从非收集区域指向收集区域的指针集合他们称为记忆集。 然而JVM 设计者并没有直接使用如上最简单的实现方案。这种记录全部含跨代引用对象的实现方案无论是空间占用还是维护成本都相当高昂。而在垃圾收集的场景中收集器只需要通过记忆集判断出某一块非收集区域是否存在有指向了收集区域的指针就可以了并不需要了解这些跨代指针的全部细节。那设计者在实现记忆集的时候他们选择更为粗犷的记录粒度来节省记忆集的存储和维护成本也就是卡精度的实现方案。 对象精度每个记录精确到一个对象该对象里有字段含有跨代指针。 卡精度每个记录精确到一块内存区域该区域内有对象含有跨代指针。卡精度”所指的是用一种称为“卡表”Card Table的方式去实现记忆集这也是目前最常用的一种记忆集实现形式一些资料中甚至直接把它和记忆集混为一谈。前面定义中提到记忆集其实是一种“抽象”的数据结构抽象的意思是只定义了记忆集的行为意图并没有定义其行为的具体实现。卡表就是记忆集的一种具体实现它定义了记忆集的记录精度、与堆内存的映射关系等。 可以对比map 和HashMap 卡表最简单的形式可以只是一个字节数组而HotSpot虚拟机确实也是这样做的。以下这行代码是HotSpot默认的卡表标记逻辑 CARD_TABLE [this address 9] 0;字节数组CARD_TABLE的每一个元素都对应着其标识的内存区域中一块特定大小的内存块这个内存块被称作“卡页”Card Page。一般来说卡页大小都是以2的N次幂的字节数通过上面代码可以看出HotSpot中使用的卡页是2的9次幂即512字节 一个卡页的内存中通常包含不止一个对象只要卡页内有一个或更多对象的字段存在着跨代指针那就将对应卡表的数组元素的值标识为1称为这个元素变脏Dirty没有则标识为0。在垃圾收集发生时只要筛选出卡表中变脏的元素就能轻易得出哪些卡页内存块中包含跨代指针把它们加入GC Roots中一并扫描。
http://www.dnsts.com.cn/news/158642.html

相关文章:

  • 网站开发 搜索wordpress绿色框
  • 长春网站推广公司wordpress中文书
  • 抚州律师网站建设哪个网站可以做c 的项目
  • 聊城做手机网站北京怎样建网站
  • 华为云云速建站免费做图素材网站有哪些
  • 做网站模版与定制的区别wordpress 谷歌加速插件
  • 网站排名快速提升工具中国优秀企业网站
  • 做我女朋友的网站wordpress留言系统
  • 专业行业网站建站报价网站开发售后服务协议
  • 微信导航网站如何建设东莞常平镇地图全图
  • 网站开发长期合作dw网站设计与制作
  • 中英文 网站阿里云怎么上传wordpress
  • 建设安全网站的目的wordpress图片体积
  • 网址导航哪个好商丘做网站公司新站seo快速收录网站内容页的方法
  • 兴义建设局网站网站设计方案怎么做
  • 厦门 网站建设 闽icp北京住房城乡建设网站
  • 常见网站图标谷歌优化的网络公司
  • 石家庄个人建站网站策划建设工程案例网站
  • 做的网站有营销效果吗北京市保障性住建设投资中心网站首页
  • 建设网站需要两种服务支持做网站被骗去哪投诉
  • 网站策划 英文北京手机网站设计报价
  • 用mcu做灯光效果网站做网站需要哪些框架
  • 营销型企业、公司网站案例服务网站建设排行
  • 羊肉口报关做网站大眼睛网站建设
  • 响应式网站建设准备wix做网站手机乱了
  • 大连建设监察执法网站网站服务器的选择有哪几种方式
  • 凡科自助建站网站眉山建网站
  • 做网站域名重要吗网站建设 后端开发软件
  • 无网站营销网页制作教程免费视频
  • 耒阳建设局官方网站Wordpress电脑版需要下载吗