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

惠州做棋牌网站建设有哪些公司八零云自助建站免费建站平台

惠州做棋牌网站建设有哪些公司,八零云自助建站免费建站平台,广州服务,新乡市建设路小学网站GC复制算法是Marvin L.Minsky在1963年研究出来的算法。说简单点,就是只把某个空间的活动对象复制到其它空间,把原空间里的所有对象都回收掉。这是一个大胆的想法。在此,我们将复制活动对象的原空间称为From空间,将粘贴活动对象的新…

GC复制算法是Marvin L.Minsky在1963年研究出来的算法。说简单点,就是只把某个空间的活动对象复制到其它空间,把原空间里的所有对象都回收掉。这是一个大胆的想法。在此,我们将复制活动对象的原空间称为From空间,将粘贴活动对象的新空间称为To空间。

1、什么是复制算法

GC复制算法是利用From空间进行分配的。当From空间被完全占满时,GC会将活动对象全部复制到To空间。当复制完成后,该算法会把From空间和To空间互换。GC也就结束了。From空间和To空间大小必须一致。这是为了保证能把From空间中所有活动对象都收纳到To空间里。
在这里插入图片描述

copying(){$free = $to_startfor(r:$roots)*r = copy(*r)swap($from_start, &to_start)
}

2、Copy函数

copy()函数将作为参数给出的对象复制,再递归复制其子对象。

copy(obj){if(obj.tag != COPIED)copy_data($free,obj,obj.size)obj.tag = COPIEDobj.forwarding = $free$free += obj.sizefor(child:children(obj.forwarding))*child = copy(*child)return obj.forwarding
}			

3、new_obj函数

跟标记清除算法不同,复制算法的分配过程非常简单

new_obj(size){if($free + size > $free_start + HEAP_SIZE/2)copying()if($free + size > $free_start + HEAP_SIZE/2)allocation_fail()obj = $freeobj.size = size&free += sizereturn obj;
}

4、执行过程

4.1初始状态
为了给GC做准备,这里事先将$free指针指向To空间的开头
在这里插入图片描述

4.2 B被复制后
在这里插入图片描述

4.3 A被复制后
在这里插入图片描述

接下来就是按照同样步骤复制G及其子对象E
4.4 GC结束后
在这里插入图片描述

5、优缺点

5.1优点

  1. 优秀的吞吐量
  2. 可实现高速分配
  3. 不会发生碎片化
  4. 与缓存兼容

5.2缺点

  1. 堆使用效率低下
  2. 不兼容保守式GC算法
  3. 递归调用函数

6、Cheney的复制算法

C.J.Cheney于1970年研究出GC算法,相比Fenichel和Yochelson的GC复制算法,Cheney的算法不是简单递归的,而是迭代地进行复制。

copying(){scan = $free = $to_startfor(r:$roots)*r = copy(*r)while(scan != $free)for(child : children(scan))*child = copy(*child)scan += scan.sizeswap($from_start, &to_start)
}

6.1 copy函数

copy(obj){if(is_pointer_to_heap(obj.forwarding,$to_start) == FALSE)copy_data($free,obj,obj.size)obj.forwarding = $free$free += obj.sizereturn obj.forwarding
}			

6.2 执行过程
6.2.1初始状态多引入了一个scan
在这里插入图片描述
6.2.2在cheney算法中,首先复制所有从根直接引用的对象
在这里插入图片描述
6.2.3 然后在所有b和g
在这里插入图片描述

6.3 优缺点
优点:因为该算法是迭代的,所以他可以抑制调用函数额外负担和栈的消耗。特别是拿堆用作队列,省去了用于搜索的内存空间这一点,实在是令人赞叹。
缺点:有引用关系的对象并不相邻,不兼容缓存。当然这是因为他是局域广度优先遍历,我们可以通过修改其搜索算法,利用深度优先遍历来解决这个问题。

7、多空间复制算法

GC复制算法最大的缺点就是只能利用半个堆,这是因为该算法将整个堆分成了两半,每次都要腾出一半来。
多空间复制算法就是把堆N等分,对其中2块空间执行GC复制算法,剩下的N-2块空间执行GC标记清除算法,也就是把这两种算法组合起来使用。

优点:更有效的利用了堆空间
缺点:因为只有两块空间进行了复制算法,剩下的仍然是标记清除算法,因此就会有标记清除算法的固有问题:分配耗费时间,分块碎片化等。

http://www.hkea.cn/news/702002/

相关文章:

  • 公司网站建设准备资料今日重大财经新闻
  • 发布网站后备案免费网站建站页面
  • 浙江建设职业技术学院迎新网站做一个网站要多少钱
  • axure做网站好不好手机百度问一问
  • 开发微信小程序的流程广州seo优化电话
  • 小企业网站建设和管理全能搜
  • 无棣县建设局网站游戏优化大师下载安装
  • 小额贷款 网站模板品牌推广软文
  • 网站建设开发成本天津百度搜索网站排名
  • 做的好的营销型网站有哪些内容外贸网站外链平台
  • 东营网站建设预算价格百度网盘网页版入口官网
  • 网站建设中标公告18款禁用看奶app入口
  • 网站运营人员岗位职责长沙正规seo优化价格
  • cnzz统计代码放在后台网站为什么没显示seo的英文全称是什么
  • 杭州企业网站建设方案广告门
  • 自己免费做网站(二)seo优化公司信
  • 广州外贸b2b网站建设刷钻业务推广网站
  • 做企业网站用什么怎样宣传自己的品牌
  • 濮阳做网站的公司我的百度账号
  • 美食网站开发如何做好网络营销工作
  • 网站建设案例资料今天的新闻内容
  • 台州专业网站建设方案seo软文代写
  • 个人网站 百度推广全球搜索大全
  • 网站消息推送5118素材网站
  • 天津 响应式网站设计企业网站模板免费
  • 网站用花生壳nas做存储百度seo发包工具
  • wordpress cache深圳纯手工seo
  • 怎样找到正规代加工网站百度地图3d实景地图
  • 潍坊网站建设公司网站搭建免费
  • 惠州做网站好的公司下载百度语音导航地图安装