垃圾回收机制

1>垃圾回回收机制:垃圾回收器会定期找出那些不在继续使用的变量,然后释放内存

2>标记清除(最常用的垃圾回收机制):一个变量进入环境就标记为“进入环境”,当变量离开环境是可以标记为“离开环境”(可以设置“进入环境”变量的列表和“离开环境”的列表),垃圾回收器会给内存中所有的变量加上标记,然后他会去掉环境中的变量和环境引用的变量的标记,在此之后再被加上标记的变量就是准备被删除的变量,因为环境中的变量已经无法访问这些变量了,最后垃圾回收器完成内存清除工作。

3>引用计数:跟踪记录每个变量被引用的次数。当这个值被引用的次数为0时,就可以释放这块内存。当声明一个变量并将一个引用类型的值付给这个变量,则这个值引用次数加一,如果同一个值被赋给另一个变量,该值引用次数加1,相反,如果包含这个值的变量又取得了另一个值则减一。

4>触发垃圾回收机制:如果垃圾回收器回收的内存分配量低于程序占用内存的15%,说明大部分内存不可被回收,设的垃圾回收触发条件过于敏感,这时候把临界条件翻倍,如果回收的内存高于85%,说明大部分内存早就该清理了,这时候把触发条件置回。

5>GC缺点:响应时间长(100ms甚至以上)。在进行GC时,停止响应其他操作(对js游戏动画影响比较大)

6>优化方案:

1>分带回收:“临时对象”和“持久对象”,少回收持久对象,多回收临时对象,减少每次需要遍历的对象,从而减少GC响应时间

2>增加GC:“每次处理一点,每次处理一点”,虽然减少响应时间,但是带来了上下文频繁切换的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值