Ras*_*mus 9 java android bitmap
我正在用Java创建这个Android游戏.我有很多图像,但不需要一次性使用它们所以我创建了一个资源管理器类来处理正在使用的位图.但是,我发现从存储器中清除Bitmap非常慢.我目前正在做这样的事情:
bitmap.recycle()
bitmap = null
System.gc (also tried Runtime.getRuntime().gc())
Run Code Online (Sandbox Code Playgroud)
首先,有没有办法更快地从内存中卸载位图,或者有可能以某种方式检查它们是否实际被清除,所以我可以使加载屏幕也依赖于它?
小智 0
正如 SylvainL 所说,System.gc 和朋友会收集完整的垃圾,并且速度可能相当慢。Java 机器定期运行 GC,并且根据给定时刻可用的空闲内存量来微调周期。
对我来说,最好的选择是使用某种位图池:拥有一组可以从池中获取和释放到池中的预制位图实例,并应用 LRU 策略管理缓存中的 Buffer 实例。
通过适当的微调,您可以在创建和销毁位图实例时实现零成本,因为它们是池化的,并且包含位图数据的 Buffer 实例将根据使用情况动态加载到内存中或从内存中卸载。
归档时间: |
|
查看次数: |
1262 次 |
最近记录: |