为了账号安全,请及时绑定邮箱和手机立即绑定

"WeakReference会导致大量GC"这话是什么意思?

"WeakReference会导致大量GC"这话是什么意思?

梦里花落0921 2019-02-22 19:17:20
最近看腾讯的一本书《Android移动性能实战》里面有这样一段话不是很理解,请大家帮我分析一下 两害相权取其轻,官方建议使用LRU算法来做图片缓存,而不是之前推荐的WeakReference,因为WeakReference会导致大量GC。原理示意图如图2-7所示。 我的疑惑有1.弱引用根本不会影响GC,他为什么说WeakReference会导致大量GC,这个实在理解不了。2.既然官方曾经推荐过使用弱引用,而且据我所知,Glide也使用了弱引用做缓存。那么请问弱引用和LRU分别的优势是什么。 先谢谢各位
查看完整描述

3 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

实现LRU也不是完全没问题吧,置换的方式,就要确定缓存多大空间,大了占用内存,小了置换频率太多效率不行。所以得取个平衡也就是所谓的算法,取多少合适。
而WeakReference单纯是为了解决引用避免内存泄漏的,你一旦不用了就清除好像没什么问题,但是换言之效率就会很差,而LRU就是定出一定的内存来存放图片的缓存,而WeakReference压根就没起到缓存的作用,只是避免使用者没有清除引用而导致内存泄漏。

查看完整回答
反对 回复 2019-03-01
?
侃侃无极

TA贡献2051条经验 获得超10个赞

WeakReference? WeekReference?

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 506 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信