Android 檢查運行慢原因和分析

做的一款軟件裏,每次從一個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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章