离线/在线模式下的OSMDroid内存消耗

时间:2015-02-16 14:33:56

标签: android memory-leaks osmdroid offline-mode

我正在基于osmdroid示例地图查看器(osmdroid-4.3)创建应用程序,并且我在osm片段中遇到了一些性能问题。 我使用解压缩的离线MapQuest磁贴。

我注意到离线模式下这种奇怪的内存消耗,请看屏幕。切换到在线模式后,内存图变平。并且关于GC的东西在离线状态下一直发送垃圾邮件。

http://i.stack.imgur.com/IowAq.jpg

此外,当我将其切换回离线时 - 在我滚动地图之前没有任何反应,并且再次出现此问题。

由于这件事,应用程序感觉很迟钝。有什么建议? osmdroid是正常的还是我做错了什么?

==============编辑===============

所以我在这里做了一个简短的研究,并进行了堆转储。但不幸的是,我什么都不懂,希望有人能指导我。 MAT告诉我关于可能泄漏的事情:

怀疑#1

One instance of "org.osmdroid.views.MapView" loaded by "dalvik.system.PathClassLoader @ 0x12c7be00" occupies 9,029,024 (17.58%) bytes. The memory is accumulated in one instance of "org.osmdroid.tileprovider.LRUMapTileCache" loaded by "dalvik.system.PathClassLoader @ 0x12c7be00".

Keywords
dalvik.system.PathClassLoader @ 0x12c7be00
org.osmdroid.tileprovider.LRUMapTileCache
org.osmdroid.views.MapView

怀疑#2

One instance of "android.widget.RelativeLayout" loaded by "<system class loader>" occupies 8,859,712 (17.25%) bytes. The memory is accumulated in one instance of "org.osmdroid.tileprovider.LRUMapTileCache" loaded by "dalvik.system.PathClassLoader @ 0x12c7be00".

Keywords
android.widget.RelativeLayout
dalvik.system.PathClassLoader @ 0x12c7be00
org.osmdroid.tileprovider.LRUMapTileCache

怀疑#3

36 instances of "byte[]", loaded by "<system class loader>" occupy 9,803,328 (19.09%) bytes. 

Biggest instances:
•byte[1769472] @ 0xa294f000 ................................................................................................................................................................................................................................................................... - 1,769,488 (3.45%) bytes. 

Keywords
byte[]

如果需要,我可以从这个转储中提供任何其他信息...我理解的是 - LRUMapTileCache在离线模式下做无用的工作或类似的东西,但是如何解决它:/

0 个答案:

没有答案