如何通过Picasso的回收卷轴来减少GC调用?

时间:2016-07-22 10:10:53

标签: android garbage-collection android-recyclerview picasso

我使用Android交错网格来呈现图像线条(几乎所有图像都具有相同的大小)。它显示每屏高度近15个图像。 如果没有图像(只是占位符),滚动效果很好,但是随着它们变得很懒散。我使用pause \ resume技术,但它没有多大帮助。我还把它钉在骨干上,以避免一些可能泄漏的额外数据。

唯一经常发生的问题是GC调用。似乎这是我的问题的根源。我假设它没有使用位图,因为viewholder在这里是可重用的。

您是否有想法如何降低这种情况下GC呼叫的频率?

1 个答案:

答案 0 :(得分:0)

您无法控制GC。但是,为了减少gc调用的数量,您可以在毕加索中查看正确的内存缓存。

同时确保图像不是很大,它们的大小应与视图大致相同。您还可以考虑使用OKHTTP来实现光盘缓存解决方案。

请查看我为控制内存和光盘缓存大小而设置的自定义picasso实现。还提出了一种方法,您可以使用它来清除两个缓存。 (请参阅我更新的答案的未接受的答案)

Limiting Square Picasso's cache size to 60MB max

然而,经过大量的研究,我得出的结论是毕加索对记忆的效率不高,我现在正在使用Fresco。从我所看到的内存占用方面来看,它更顺畅,并且比毕加索更好。