首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android dalvikvm- heap :夹住目标GC堆

Android dalvikvm- heap :夹住目标GC堆
EN

Stack Overflow用户
提问于 2010-11-11 22:14:40
回答 3查看 9.8K关注 0票数 22

我正在写一个程序,以同步与Android联系人数据库中的大量联系人。下载工作对于大约700个联系人很好,在此之后,我总是得到一个内存堆错误,调用无限数量的GC语句,并最终重新启动电话。我正面临着HTC desire的问题。

我使用DDMS中的heap alocation工具检查了应用程序的堆大小,并使用Debug.dumpHprofData提取了hprof文件。两个日志都表明堆大小约为2.4MB。

但是,我得到了以下日志,它表明堆大小大于32.MB

代码语言:javascript
运行
复制
dalvikvm-heap(92): Clamp target GC heap from 33.999MB to 32.000MB
dalvikvm(92): GC_FOR_MALLOC freed 2 objects / 48 bytes in 313ms

我在我的contatcs下载逻辑所在的循环中插入了以下日志语句。

代码语言:javascript
运行
复制
Log.e("Memory", "free mem =" +runtime.freeMemory());
Log.e("Memory", "total memory =" +runtime.totalMemory());

这些是打印的语句的初始值和最终值

代码语言:javascript
运行
复制
---------------------------------------------------------------
11-11 12:56:04.168: ERROR/Memory(25132): free mem =871248
11-11 12:56:04.168: ERROR/Memory(25132): total memory =4202464

---------------------------------------------------------------

11-11 13:01:55.408: ERROR/Memory(25132): free mem =891640
11-11 13:01:55.408: ERROR/Memory(25132): total memory =4726752

---------------------------------------------------------------

这表明在同步联系人逻辑中显然不存在内存泄漏。

有人能让我知道为什么堆大小增加(高达32.00Mb)到设备自己重新启动的程度吗?我是Android和Java的新手,所以请不要对我太苛刻:)...

EN

回答 3

Stack Overflow用户

发布于 2011-10-18 03:06:27

虽然这不是最好的答案,但我强烈建议你在谷歌IO2011上观看Memory management for Android Apps演讲的视频。它很好地解释了如何管理内存以及您所看到的消息的实际含义。

票数 8
EN

Stack Overflow用户

发布于 2011-11-17 07:26:44

你需要张贴你的代码,以便任何人都能提供帮助。否则我会假设两件事:

  • 由于您的电话正在崩溃,您一定是在做一些很棒的事情,使您的程序可以在VM分配的内存空间之外运行。
  • 您是否将所有联系人都存储在列表或数组中?如果是这样的话,这就是你的问题。这是Streams擅长解决的问题。

票数 2
EN

Stack Overflow用户

发布于 2011-11-19 04:48:14

通过下载,您是指从远程位置获取数据?看起来你在内存中保留了很多对数据的引用。你非得这么做吗?根据您试图实现的目标,通常有几件事可以尝试最小化内存占用。首先,我会确保不使用任何字符串引用,但我会将数据直接流式传输给使用者。此外,尝试以块的形式处理所有数据。您还需要将数据持久化到文件系统吗?如果是这样,直接流到文件系统,并避免所有的内存存储在一起。如果你发布一些代码,这可能会有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4155247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档