java - 我的应用程序在我的设备上占用了 250mb 内存。当我进行堆转储并对其进行分析时。它说堆大小约为 7mb

标签 java android memory-leaks eclipse-memory-analyzer

是否有其他正在使用的内存未显示在堆转储中?我在 Eclipse 上使用内存分析器。首先,我使用 DDMS 和内存分析器选择转储堆。它只显示堆的大小为 7mb,直方图基本上告诉我一切都很好。然而,我已经在我的设备上下载了几个内存监控应用程序,他们都说我的应用程序占用了 250mb,而且还在不断攀升。

我还能如何尝试找出它占用这么多内存的原因?

enter image description here

enter image description here

最佳答案

内存测量应用程序的值(value)不大,引用 Dianne Hackborn :

Note that memory usage on modern operating systems like Linux is an extremely complicated and difficult to understand area. In fact the chances of you actually correctly interpreting whatever numbers you get is extremely low.

话虽这么说,但欢迎您使用她的回答中概述的技术来尝试更好地处理这些工具所声称的内容以及这是否真的是一个问题。

还有:

  • 如果您有多个进程,请记住 DDMS 的堆转储是针对单个进程的

  • 如果您使用 NDK 进行 native 开发,则 NDK 分配不是托管堆的一部分,因此不会包含在堆转储中

关于java - 我的应用程序在我的设备上占用了 250mb 内存。当我进行堆转储并对其进行分析时。它说堆大小约为 7mb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19093210/

相关文章:

java - 你如何在不给别人源代码的情况下共享 Java 函数?

java - = 和 new 的区别

java - j2me中class.forName的参数构造函数

android - 为 BroadcastReceiver 创建我自己的操作

Python 3 asyncio 如何正确关闭客户端连接

java - 忽略 JSON 到 XML 转换中的键

android - gcm 服务器响应的含义?

c# - XmlSerializer.FromTypes 产生内存泄漏?

java - 关闭 JavaFX 选项卡不会释放该选项卡中 ArrayList 和 TableView 的内存

android - Flex Air For Android 中的透明背景?