检测性能问题的原因?

时间:2010-12-11 22:26:59

标签: android performance debugging

我有一个Android应用程序现在变得相当庞大和复杂,它似乎有间歇性的性能问题。有一次我会运行应用程序,这很好,另一次在切换视图时会很困难。

如何使用调试工具检测性能问题的原因,以便我可以更正它?

2 个答案:

答案 0 :(得分:7)

使用SDK附带的ddms工具。它有一个很好的功能,称为 Allocation Tracker ,它允许您实时查看代码消耗的内存量以及导致该代码的特定行。

大多数情况下,由于适配器实施不良,布局通胀技术不佳或者没有使用缓存系统解码Bitmaps(例如使用SoftReference),您的应用会变慢。

请看一下这篇文章的简要说明:Tracking Memory Allocations

a

答案 1 :(得分:0)

除了Cristian提到的工具之外,Traceview是另一个有用的工具。它没有很好的文档记录,但它可以为您提供有关调用方法的频率以及哪些方法需要花费大量时间的信息。

另一个优秀的内存跟踪工具是MAT,这是一个介绍如何在Android上使用它的页面:http://ttlnews.blogspot.com/2010/01/attacking-memory-problems-on-android.html

如果您不想使用命令行,则可以通过DDMS面板完成跟踪和堆转储。在Eclipse中,在设备面板中,在您使用的设备/模拟器下,单击您的应用程序(按包名列出),然后您可以启动/停止方法分析以获取跟踪,您可以使用Dump HPROF获取堆转储。注意,转储需要转换为使用MAT插件。上面的攻击内存问题描述了如何做到这一点。