首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >android确定GC释放的对象

android确定GC释放的对象
EN

Stack Overflow用户
提问于 2010-11-03 13:44:13
回答 3查看 4.2K关注 0票数 0

我的android应用程序性能很低。从logcat中,我发现耗时的因素是垃圾收集。它在每次gc中至少消耗110毫秒。gc频繁出现。有没有办法确定收集的对象??

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-03 19:07:42

查看http://developer.android.com/videos/index.html中的视频

尤其是关于“让你的用户界面更快”的演讲,视频中有很多设计最佳实践。

它肯定会帮助你的应用程序运行得更快。

票数 1
EN

Stack Overflow用户

发布于 2010-11-04 07:51:34

在DDMS工具中,转到“分配跟踪器”选项卡。从列表中选择您的应用程序,然后单击“开始跟踪”。使用该应用程序一段时间后,选择“获取分配”。

这将向您显示512个最近分配的列表,以及大小和堆栈跟踪。由此,您应该能够知道是什么在消耗内存并导致GC。

票数 2
EN

Stack Overflow用户

发布于 2010-11-03 14:43:44

对于Android GC来说,这并不是一个奇怪的值。~100ms和~500K的值是相当平均的,但这取决于course.The的项目规格,真正的问题在于您的代码导致GC被调用的频率。

这里有一个例子:如果你通过ListView和一些定制的Adapters实现列表,你可能会得到最差的性能,也可能会得到最好的性能,这取决于你为它们编写代码的方式。如果你不优化列表并创建一个新的视图(通过从.xml文件中膨胀它),你会经常收到GC调用,这被认为是UI中的小麻烦或麻烦。

确定导致GC问题的最好方法是本地化它。启动你的应用程序,在监控GC gumps的DDMS时,一次使用一个部分,然后看看哪个元素或活动导致了大部分gumps,然后从那里开始。

也可以尝试使用一些工具监控内存使用情况。例如,如果您使用的是Eclipse,那么有一个名为MAT的工具可以让您更深入地了解整个项目中对象的使用情况。

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

https://stackoverflow.com/questions/4084488

复制
相关文章

相似问题

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