Android 检查运行慢原因和分析

来源:互联网 发布:json美化 编辑:程序博客网 时间:2024/04/29 08:47

做的一款软件里,每次从一个activity到另一个activity时,看CPU的图和运行速度都有点可怕,线程太多了么,但是具体的是什么,我也不确定。

使用Android Studio -> Tools -> Android(最底下一个) -> Android Device Monitor ->打开页面后等待左栏中出现你要监视的机子信息


然后点选运行的程序信息-> 点选左上菜单栏里的图标(图标对应的事情在右边菜单栏里有对应的名字)。如我要检查我的线程:


发现我的Render Thread数字有点可怕

Heap:66.11%(初始) -> 打开菜单66.13%-> 跳转第二个Activity 80.67% -》点击某dialog 81.03%  -》打开 Spinner  80.72% 然后就不下去了


查heap时, Thread 1 & 6占最多, Thread 1 大多是UI上的内容

1868 84924 byte[] 6 org.apache.harmony.dalvik.ddmc.DdmVmInternal getRecentAllocations


后来去查发现render和我的UI有关,难道是我的resource的内容太多? 把大尺寸的图改小后,以及省去一些自己做的UI,这个速度又变正常了。


 然后去看heap,Thread 6 还是很明显的在涨。然后继续查 Thread 6是什么,以及 org.apache.harmony.dalvik.ddmc.DdmVmInternalgetRecentAllocations 是什么鬼

“注意:总会有一些分配是来自与 DdmVmInternal 和 allocation tracker本身。尽管移除掉所有严重影响性能的代码是不必要的(也是不可能的),但是allocation tracker还是可以帮助定位代码中的严重问题。例如,应用可能在每个draw操作上创建新的Paint对象。把对象改成全局变量就是一个很简单的改善性能的修改。”(Ref:http://blog.csdn.net/jdsjlzx/article/details/45822217)

线程Thread Wiki::(http://baike.baidu.com/link?url=59bU6kZtzdqgVT44sjWpH8DSiKqEvYWBwB0FRSJcFz1NhuCoA2vTp1zuY5ZjS9T6LfndkOcQSydkEuvqqo5bt)

优化简介:http://www.oschina.net/news/60157/android-performance-patterns



0 0