在android中,我使用了hashmaps和sparsearrays以及sparseintarrays。在函数中,我使用它们有时是临时对象。在功能结束之前,最好是清除地图的数据吗?
由于
答案 0 :(得分:4)
在android中,我使用了hashmaps和sparsearrays以及sparseintarrays。在函数中,我使用它们有时是临时对象。在函数结束之前,最好是清除地图的数据吗?
不,这没有任何成就。
我想,如果你清除它,那么你就可以立即取回内存,而不是等待垃圾收集。那么这不是让它起作用吗?
清除集合只会删除对集合中项目的引用,因此您仍需要等待垃圾收集才能恢复内存。
答案 1 :(得分:2)
没有
没有必要这样做。由于hashmap是函数的本地,因此hashmap将由垃圾收集器收集,如果它是空的则没有区别。如果没有其他引用,也将收集hashmap的内容。它不会在地图内外快速收集。
因此清除它只会浪费时间。
但是如果你担心内存,那一定是一些非常大的对象。如果是Bitmap
,则可以调用bmp.recycle()
来帮助垃圾收集。