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

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

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

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

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

实现LRU也不是完全没问题吧,置换的方式,就要确定缓存多大空间,大了占用内存,小了置换频率太多效率不行。所以得取个平衡也就是所谓的算法,取多少合适。而WeakReference单纯是为了解决引用避免内存泄漏的,你一旦不用了就清除好像没什么问题,但是换言之效率就会很差,而LRU就是定出一定的内存来存放图片的缓存,而WeakReference压根就没起到缓存的作用,只是避免使用者没有清除引用而导致内存泄漏。
                            
查看完整回答
反对 回复 2019-05-24
  • 2 回答
  • 0 关注
  • 623 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号