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

wordpress搭建网站免费网站大全app

wordpress搭建网站,免费网站大全app,湖北省勘察设计协会网站,响应式网站设计建设制作压缩算法是将标记清除算法与复制算法相结合的产物。 1、什么是标记压缩算法 标记压缩算法是由标记阶段和压缩阶段构成。 首先,这里的标记阶段和标记清除算法时提到的标记阶段完全一样。 接下来我们要搜索数次堆来进行压缩。压缩阶段通过数次搜索堆来重新填充活动对…

压缩算法是将标记清除算法与复制算法相结合的产物。

1、什么是标记压缩算法

标记压缩算法是由标记阶段和压缩阶段构成。
首先,这里的标记阶段和标记清除算法时提到的标记阶段完全一样。
接下来我们要搜索数次堆来进行压缩。压缩阶段通过数次搜索堆来重新填充活动对象。因压缩而产生的优点我们在介绍复制算法的时候已经说过了。不过他和复制算法不同的是,不用牺牲半个堆。

2、Lisp2算法

2.1 Lisp2算法中的对象
在这里插入图片描述

2.2 执行过程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

compaction_phase(){set_forwarding_ptr()  // 设定forwarding指针adjust_ptr()		//更新指针move_obj()          // 移动对象
}

设定forwarding指针:

set_forwarding_ptr(){scan = new_address = $heap_startwhile(scan < $heap_start)if(scan.mark == true)scan.forwarding = new_addressnew_address += scan.sizescan += scan.size;
}
//scan是用来搜索堆中的对象的指针,new_address是指向目标地点的指针。

更新指针:

adjust_ptr(){//重写根的指针for(r : $roots)*r = (*r).forwarding  scan = $heap_start//重写所有活动的指针while(scan < $heap_end)if(scan.mark == true)for(child : children(scan))*child = (*child).forwardingscan += scan.size;
}

移动对象:

move_obj(){scan = $free = $heap_startwhile(scan < $heap_end)if(scan.mark == true)new_address = scan.forwardingcopy_data(new_address,scan,scan.size)new_address.forwarding = NULLnew_address.mark = false$free += new_address.sizescan += scan.size;
}
//本算法不会改变对象的排列顺序,只是把对象顺序从堆各处向左移动到堆的开头。因此这就保证了目标堆中已经没有活动对象了。

2.3 优缺点
优点:可有效利用堆
缺点:压缩花费计算成本。必领对整个堆进行了次搜素。也就是说,执行该算法所花费的时间是和堆大小成正比的。GC标记一压缩算法的吞吐量要劣于其他算法。

3、Two-Finger算法

3.1 前提
Two-Finger算法有着很大的限制条件,那就是必须把所有对象整理成大小一致。

3.2 执行过程

移动对象:这其中用了&free和live这两个指针,从两端向正中间搜索堆

move_obj (){§free = $heap_startlive = $heap_end - OBJ_SIZEwhile (true)while ($free.mark == true)$free †= OBJ_ SIZEwhile (live.mark == false)live -= OBJ_SIZE if ($free < live)copy_data ($free, live, OBJ_SIZE)live.forwarding = $freelive.mark = falseelsebreak
}

更新指针:寻找移动前对象的指针,把他更新,使其指向移动后的对象

adjust_ptr () {for (r : $roots)if(*r >= $free)*r = (*r). forwardingscan = $heap_startwhile (scan < $free)scan.mark = FALSEfor (child: children(scan))if (*child >= $free)*child = (*child) .forwardingscan += OBJ_ SIZE
}

3.3 优缺点
优点:Lisp2 算法要事先确保每个对象都留有 1个字用于forwarding 指针,这就压迫了堆。然而因为 Two-Finger 算法能把 forwarding 指针设置在移动前的对象的域里,所以不需要领外的内存空间以用于 forwarding 指针,因此在内存的使用效率上,该算法要比 Lisp2 算法的使用效率高。
此外,在Two-Finger 算法中,压缩所带来的搜素次数只有2次,比Lisp2算法少1次,在吞吐量方面占优势。
缺点:就像我们在介绍 GC 复制算法时所说的那样,将具有引1用关系的对象安排在堆中较近的位置,就能够通过缓存来提高访问速度。不过 Two-Finger 算法则不考虑对象间的引用关系,一律对其进行压缩,结果就导致对象的顺序在压缩前后产生了巨大的变化。因此,我们基本上也无法期待这个算法能沾缓存的光。
此外该算法还有一个限制条件,那就是所有对象的大小必须一致。因为能消除这个限制的处理系统不太多,所以这点制约了Two-Finger 算法的应用范围。

http://www.yayakq.cn/news/26720/

相关文章:

  • 江门市网站开发三台移动网站建设
  • 网站栏目标题百度一下百度搜索
  • 重庆建网站培训机构手机赚钱软件
  • seo网站诊断分析报告免费个人业务网站制作
  • 第四章第二节网站建设的教学设计wordpress 搜索标签页
  • 福州建网站,做网页手机建站模版
  • 贵阳讯玛网站建设大连做公司网站
  • 管理网络的网站免费申请大王卡
  • 凡科免费建微信小程序网站wordpress男性主题
  • 怎么做非法网站网推团队
  • 做网站 传视频 用什么笔记本好郴州网上房地产
  • 搭建一个网站的具体步骤js音乐网站模板
  • 做视频比较好的理财网站有哪些品牌建设的步骤是( )
  • 自己做网站需要哪些流程专门做win7系统的网站
  • 怎么让网站自适应网站类型案例
  • tp5企业网站开发百度云温州市建设厅网站首页
  • 哈尔滨网站建设索q.479185700完整的外贸出口流程
  • 加快网站打开速度无线网站建设
  • 网站营销方式免费自助建站排名
  • 教育网页设计网站电子商务网站建设分析论文
  • php网站开发工程师教程肯德基网站开发
  • 校园网站规划与建设心得鲜花团购网站建设
  • 曹县网站开发公司wordpress 去除google
  • 网上招聘网站开发报告二级网站的建设
  • 高校门户网站建设需要多少钱西安 企业网站建设
  • 外贸搜素网站互联网行业未来发展趋势
  • 主流网站建设服务器有哪些做网站设计师能10年赚100万吗
  • 西安网站建设推荐开源php企业网站
  • 做瞹瞹爱免费网站行业网站建站青岛公司
  • 免费创建单页网站定制平台有哪些