【问题标题】:Tracking down android memory usage with MAT使用 MAT 跟踪 android 内存使用情况
【发布时间】:2013-10-08 23:17:06
【问题描述】:

我正在尝试找出我的应用程序的一些内存使用来自使用 MAT。

有一些关于位图的引用似乎保留了很多堆。有什么方法可以确定它们是什么实际资源?图像通常来自应用程序内的可绘制对象。有对象引用,但我不知道如何深入确定哪些实际可绘制对象可能占用内存。

例如有一个位图,保留堆超过 1mb,很多超过 300k

【问题讨论】:

  • 如果您跟踪 GC 根,您可以看到位图上持有的是什么,这可以帮助您确定它的来源。
  • @CommonsWare 是“通往 GC 根的路径”,然后是“所有引用最好看的东西”?
  • 应该有类似“除了弱/软之外的所有引用”之类的东西会更好一些,但基本上你有正确的想法。
  • 谢谢,我去看看

标签: android android-image android-memory


【解决方案1】:

定义你真正的问题。 Bitmaps 这些尺寸很正常:在 200x200px 和 500x500px 之间。

如果您有OutOfMemoryErrors,当第一次接近应用程序时,我喜欢使用直方图(第二个图标,带有 3 个蓝条)并过滤your.package.*Activity。如果实例太多,则可能意味着存在内存泄漏。

【讨论】:

  • 问题是我的应用程序似乎消耗了大量内存(通常为 25-40mb),但我收到用户报告说它达到了 100mb+。应用程序中没有真正的大图像。我认为最大的大约是 20k,所以我猜我没有正确清理某些东西并停止在某些对象上发生 GC。我知道有些用户会收到 OOM,但我自己没见过
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
  • 2013-01-14
  • 2011-01-18
  • 2017-06-17
  • 2017-02-14
  • 1970-01-01
  • 2011-02-19
相关资源
最近更新 更多