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

网站建设评审意见鞍山信息港号吧

网站建设评审意见,鞍山信息港号吧,大气金融投资企业网站模板,国外免费网站域名服务器查询1. 跨代引用概述 在Java堆内存中#xff0c;年轻代和老年代之间存在的对象相互引用#xff0c;假设现在要进行一次新生代的YGC#xff0c;但新生代中的对象可能被老年代所引用的#xff0c;为了找到新生代中的存活对象#xff0c;不得不遍历整个老年代。这样明显效率很低…1. 跨代引用概述 在Java堆内存中年轻代和老年代之间存在的对象相互引用假设现在要进行一次新生代的YGC但新生代中的对象可能被老年代所引用的为了找到新生代中的存活对象不得不遍历整个老年代。这样明显效率很低下那么如何快速识别并回收这种引用对象呢 这就不得不提到Card Table(卡表)和 Remember Set记忆集,简称RSet了。 2. 跨代引用的处理方式 2.1 卡表Card Table 卡表是一种用于跟踪年轻代对象被老年代对象引用的数据结构。它将堆内存划分为一系列固定大小的区域卡片每个卡片记录了年轻代对象被老年代对象引用的情况。在老年代垃圾回收时垃圾收集器会扫描卡表以确定哪些年轻代对象是存活的即被老年代对象引用。 在 JVM 中一个 card 的大小通常是512字节。在多线程并行收集时每个线程可以批量扫描多个 card一批 card 被称为一个 stride。默认一个 stride 含有 256个 card即每个线程要每次扫描 512 * 256 128 K 的内存区域。stride数量太多就会导致线程在stride之间切换的开销增加进而导致 GC Pause 增长 strides 太少恐怕也会导致单次扫描的时间增长进而影响整个 GC Pause 。 2.2 记忆集Remembered Sets 伴随 G1 垃圾收集器的诞生传统的老年代和新生代都从物理上的连续空间变成了一个个物理上不连续的空间 region。 JVM 针对这些Region 提供了一个数据结构也就是 CSetCollection Set存储任意年代的region。 物理上不连续的 region 造成了新生代和老年的引用破碎化新生代引用老年代所以产生了 old-young和young-old的跨代对象引用这时候 JVM 只要扫描 CSet 中的 R Set 即可。 逻辑上说每个Region都有一个RSetRSet记录了其他Region中的对象引用本Region中对象的关系。 每个Region会在自身的Remembered Set中纪录下来自其他Region的指向自身的Card位置。这个Remembered Set是一个Hash TableKey是别的Region的起始地址Value是一个集合里面的元素是Card Table的Index。 RSet、Card和Region的关系 下图表示了RSet、Card和Region的关系  图中是相互引用的三个region。R1 和 R3 的被细分到了card table 级别。R2 被 R1 和 R3的某些区域引用所以 R2 的 RSet 会记录到 R1 和 R2 的区域索引即产生某些循环引用的作用。 一个 Region 的 RSet 如果有值至少可以证明这个区域是有引用的一个区域如果无值则可以认为这个区域不可达可以不扫描这个区域Card Table 可以减少 Minor GC 扫描 old 区来理解 young 区的时间RSet 则可以减少扫描生成 CSet 选取候选 region 的时间。 在做YGC的时候只需要选定young generation region的RSet作为根集这些RSet记录了old-young的跨代引用避免了扫描整个old generation。而mixed gc的时候old generation中记录了old-old的 RSetyoung-old的引用由扫描全部young generation region的 card table得到这样也不用扫描全部old generation region。所以RSet的引入大大减少了GC的工作量。 2.3 处理器屏障Processor Barriers 处理器屏障是一种硬件支持的机制用于跟踪对象之间的引用关系。当发生引用修改时处理器屏障可以监测到对内存的访问并通知垃圾收集器。垃圾收集器可以根据这些信息来更新引用关系确保跨代引用被正确处理。 3. 总结 卡表只解决 youngGC 扫老年代的问题而 RSet 则解决了G1 对所有 Region 的扫描问题。卡表通过对外引用提示我们应该扫描什么区域这样我们可以避开不用扫描的区域RSet通过对内引用提示我们应该扫描什么区域这样我们可以避开不用扫描的区域。 跨代引用的垃圾回收是Java虚拟机中一个复杂而重要的问题。通过合理设计和优化记忆集、卡表等数据结构并结合并发标记-清除算法、处理器屏障等技术可以有效地处理跨代引用保证垃圾回收的效率和稳定性从而提高Java应用程序的性能和可靠性。
http://www.hkea.cn/news/14383828/

相关文章:

  • 网站建设公司 经营资质万网域名网站建设
  • 做网站首页置顶多少钱做的最好的网站公司
  • 某旅行社网站建设论文设计制作小车二教学反思
  • 邯郸网站建设做公司wordpress 页面满屏
  • 怎么做动漫网站天津塘沽网站建设公司
  • c语言 做网站手机网站推荐一个
  • 我们是设计师 网站建设专家iis7.5 发布网站
  • 宿州建设网站公司网页设计与制作教程教科书
  • 注册越南网站vn建筑工程培训
  • 平安河南建设网站哈尔滨网站建设技术托管
  • wordpress文章详情页求职seo
  • 宝塔网站做301重定向北京网页游戏制作培训
  • 广州网站推广软件河北省建设厅网站网上建设大厅
  • asp网站只能打开首页免费查询个人征信
  • 购物网站模板 php吉林做网站找谁
  • 什么网站时候做伪静态做一个个人网页多少钱
  • 服务专业的网站开发设计网站建设推广人员
  • 建筑公司网站排名成都网站
  • 蓝杉互动网站建设江苏省网站建设
  • 设计个网站需要怎么做中国猎头公司排行榜
  • 云一网站建设华夏名网vps免费网站管理助手
  • 专业营销网站诸暨公司做网站
  • 3340网站建设与管理wordpress 太多重定向
  • 什么网站有题目做外贸新手怎么找客户
  • 网站先做前端还是后台谷歌搜索引擎入口google
  • 户县住房和城乡建设局官方网站wordpress安装创建数据库
  • 某班级网站建设方案论文ps做网站教程
  • 网站开发是怎么回事如何维护自己公司网站
  • 广西网站seo手机app开发工资高吗
  • 建筑网站大全玻璃建筑工程有限公司招聘信息