1

为什么?

怎么解决? byte[] 需要设置 null吗?Eclipse 内存分析器

在此处输入图像描述

4

1 回答 1

1

这个问题的答案取决于您byte[]在应用程序中如何使用代码。

如何解决?

  • 签入您正在初始化数组的应用程序byte
  • 在循环的迭代中重用数组元素
  • 在不使用数组引用时将其无效

检查带有标签的 logcat 消息:dalvikvm并运行您的应用程序。检查在哪里

D/dalvikvm(28039): GC_CONCURRENT freed 473K, 7% free 9503K/10180K, paused 2ms+3ms,总共22ms

在这里,观察田野——

  1. 7%免费9503K /10180K -

9503K是在我们的应用程序中持有活动对象引用的数量。当你在你的应用程序中遍历时,这个值会增长。这个是正常的。但是并行 GC 也在运行并试图释放没有强连接的资源/对象引用。如果您没有发现价值9503K下降,那么这是对我们的警告。这表明我们的应用程序肯定在泄漏内存。

有关内存优化的详细信息,您应该查看Google IO video for memory optimization 并使用 eclipse 的 mat 工具

于 2015-04-22T12:58:30.107 回答