ganguo icon indicating copy to clipboard operation
ganguo copied to clipboard

请教一下 大神的图片墙的缓存是怎么处理的

Open BlackC0 opened this issue 7 years ago • 14 comments

大神应用的代码似乎把图片的所有资源都缓存了,但是内存似乎一直保持在80~90mb左右,是在哪里做了释放呢,且滑倒下面去之后再划上来,图片依然显示出来了,好像图片内存缓存并没有清一样 可否简单说说 大神的内存怎么处理的呢? 我这边做了很多处理 依然会有oom的存在。。

BlackC0 avatar Nov 17 '17 06:11 BlackC0

使用glide加载图片就行了,缓存什么的都不用操心了

yanyiqun001 avatar Nov 18 '17 05:11 yanyiqun001

我用了glide加载图片oom了 才去处理的啊

BlackC0 avatar Nov 20 '17 02:11 BlackC0

https://github.com/BlackC0/Gank.git 这是我的一个gank项目,我在测试后(福利墙不断往下拉加载图片)发现即使我是glide忽略内存缓存也会oom 也就是说 只要是在图片墙不断往下拉就会造成oom 这看起来很像是imageview没有复用所致 但是我用的recycleview自带的viewholder啊 不知大神能否拜读一下我的代码呢?

BlackC0 avatar Nov 21 '17 07:11 BlackC0

好的我帮你看下

yanyiqun001 avatar Nov 21 '17 08:11 yanyiqun001

我是借鉴着大神的页面布局写的(害羞)

BlackC0 avatar Nov 21 '17 08:11 BlackC0

你写的rv的adapter没有引用对应的viewholder ,导致rv的item没有复用而造成oom了

yanyiqun001 avatar Nov 21 '17 09:11 yanyiqun001

可是我的VH 是继承rv的,虽然没有限定自己写的vh,这样会导致rv不复用item吗?

BlackC0 avatar Nov 21 '17 09:11 BlackC0

比如我的首页也是这样写的,可是并不会oom,里面使用两种vh,那标准写法 当有复数vh的时候,应该怎么写呢?

BlackC0 avatar Nov 21 '17 09:11 BlackC0

刚测试了 还是会oom的 内存达到300多m之后死的

BlackC0 avatar Nov 21 '17 09:11 BlackC0

明天我再看下 今天下班了~

yanyiqun001 avatar Nov 21 '17 09:11 yanyiqun001

我水平有限,没找到oom的原因,我比对了一下内存占用,发现你的程序没有过明显的gc过程。而我写的也是靠不断gc来维持内存的使用率。

yanyiqun001 avatar Nov 23 '17 01:11 yanyiqun001

emmmm... 我后面log了一下onCreateViewholder和onBindViewHolder的次数 发现确实没有复用item 而是不断创建新的vh 两个adapter都是

BlackC0 avatar Nov 23 '17 02:11 BlackC0

但是为什么没有复用item 我就看不出来了...

BlackC0 avatar Nov 23 '17 02:11 BlackC0

大佬留下邮箱,我们漂流瓶见

myhzy avatar Nov 25 '17 11:11 myhzy