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

青海建设兵团网站小院福田小货车

青海建设兵团网站小院,福田小货车,宝塔ssl wordpress,保定市制作网站公司压缩算法是将标记清除算法与复制算法相结合的产物。 1、什么是标记压缩算法 标记压缩算法是由标记阶段和压缩阶段构成。 首先#xff0c;这里的标记阶段和标记清除算法时提到的标记阶段完全一样。 接下来我们要搜索数次堆来进行压缩。压缩阶段通过数次搜索堆来重新填充活动对…压缩算法是将标记清除算法与复制算法相结合的产物。 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.yutouwan.com/news/129517/

相关文章:

  • 阜宁网站制作服务商景泰县做网站
  • 网站建设捌金手指花总十八深圳网站维护优化
  • 个人网站学生作业企业融资的目的和意义
  • 松江营销型网站建设公司国外免费网站服务器链接
  • 网页制作模板的网站代码最新手机发布会
  • 澄海建网站德州市平原县建设局网站
  • 书画网站的建设目标新乡宣传片制作公司
  • 门户网站的建设要求线上推广员
  • 大兴快速网站建设公司线上教学网站
  • 苏晋建设集团网站永久免费企业建站官网大全
  • frontpage2007网站建设网站的建站流程
  • 杭州网站制作公司网站海南省海口市网站建设
  • 交易网站模板福州帮人建网站公司
  • 网站改版提升总结免费ai写作网站
  • 西安做网站魔盒门店销售管理系统
  • 飞猪旅游的网站建设亿创电力建设集团有限公司网站
  • 药监局网站建设方案静态网站有什么用
  • 手机网站布局教程上海网站建设门户
  • 网上自己建网站app开发技术
  • 最新自助建站源码外网下载
  • wordpress站点字体修改京东自营入驻流程及费用
  • 连接器天津有公司做吗做新的网站seo
  • 免费的源代码分享有哪些网站图像放大网站
  • 如何自己学做网站网站建设落后发言
  • 对比色网站设计微信官网网站模板下载不了
  • 制作网站哪里好品牌宣传策略有哪些
  • 深圳深圳网站建设公司上海网站建设咨
  • 吉林电商网站建设价格几十万做网站平台
  • 妇女网站建设方案图书销售网站设计怎么做
  • 网站seo策划方案设计徐州网站建设制作工作室