我的android应用程序性能很低。从logcat中,我发现耗时的因素是垃圾收集。它在每次gc中至少消耗110毫秒。gc频繁出现。有没有办法确定收集的对象??
发布于 2010-11-03 19:07:42
查看http://developer.android.com/videos/index.html中的视频
尤其是关于“让你的用户界面更快”的演讲,视频中有很多设计最佳实践。
它肯定会帮助你的应用程序运行得更快。
发布于 2010-11-04 07:51:34
在DDMS工具中,转到“分配跟踪器”选项卡。从列表中选择您的应用程序,然后单击“开始跟踪”。使用该应用程序一段时间后,选择“获取分配”。
这将向您显示512个最近分配的列表,以及大小和堆栈跟踪。由此,您应该能够知道是什么在消耗内存并导致GC。
发布于 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的工具可以让您更深入地了解整个项目中对象的使用情况。
https://stackoverflow.com/questions/4084488
复制相似问题