1. 程式人生 > >Android客戶端效能測試—CPU、啟動時間(二)

Android客戶端效能測試—CPU、啟動時間(二)

前言:

1.繼上篇“記憶體”,這篇講述的是“CPU”和“啟動時間”

2.準備工作,及如何獲取程序PID,請參見上篇文章

一、查取android手機的整體CPU利用率

1、top命令

(1).開啟cmd命令進入adb shell 環境

(2).輸入 top -n 1 -d 5

2、命令分析

-m:最多顯示多少個程序

-n:重新整理次數

-d:重新整理間隔(5s)

-s:按哪列排序

-t:顯示執行緒,而不是程序

3、CPU佔用率:User 28%, System 26%, IOW 0%, IRQ 0%

User:使用者程序

System:系統程序

IOW:IO等待時間

IRQ:硬中斷時間

4、CPU使用情況:User 320 + Nice 0 + Sys 297 + Idle 518 + IOW 2 + IRQ 1 + SIRQ 2 = 1140


User :處於使用者態的執行時間,不包含優先值為負程序

Nice  :優先值為負的程序所佔用的CPU時間

Sys    :處於核心態的執行時間

Idle    :  除IO等待時間以外的其它等待時間

IOW IO:等待時間

SIRQ  : 軟中斷時間

IRQ    :硬中斷時間

5、程序屬性: PID PR CPU% S  #THR     VSS     RSS PCY UID      Name

PID :程序在系統中的ID

CPU%  : 當前瞬時所以使用CPU佔用率

S :程序的狀態,其中S表示休眠,R表示正在執行,Z表示僵死狀態,N表示該程序優先值是負數。

#THR :程式當前所用的執行緒數

VSS: 虛擬耗用記憶體(包含共享庫佔用的記憶體)

RSS: Resident Set Size 實際使用實體記憶體(包含共享庫佔用的記憶體)

PCY:程序/執行緒的排程策略

UID :運行當前程序的使用者id

Name:程序名稱

二、查取某個應用的CPU佔用情況

1、dumpsys cpuinfo命令

輸入:dumpsys cpuinfo pid/包名

2.8%:總的CPU佔用率

22370:PID

1% :在使用者中花1%的時間

1.8%:在核心中花1.8%時間

三、啟動時間:

1、概念:

冷啟動:當啟動應用時,後臺沒有該應用的程序,這時系統會重新建立一個新的程序分配給該應用,這個啟動方式就是冷啟動。

熱啟動:當啟動應用時,後臺已有該應用的程序(例:按back鍵、home鍵,應用雖然會退出,但是該應用的程序是依然會保留在後臺,可進入任務列表檢視),所以在已有程序的情況下,這種啟動會從已有的程序中來啟動應用,這個方式叫熱啟動。

首次啟動:首次啟動嚴格來說也是冷啟動,之所以把首次啟動單獨列出來,一般來說,首次啟動時間會比非首次啟動要久,首次啟動會做一些系統初始化工作,如快取目錄的生產,資料庫的建立,SharedPreference的初始化,如果存在多 dex 和外掛的情況下,首次啟動會有一些特殊需要處理的邏輯,而且對啟動速度有很大的影響,所以首次啟動的速度非常重要,畢竟影響使用者對 App 的第一映像。

2、am start -W packagename/activity 命令 (W大寫)

通過 logcat -b events -s am_activity_launch_time 命令可獲取包名和activity




WaitTime:包括前一個應用 Activity pause 的時間和新應用啟動的時間,稍微大點。

TotalTime: 表示新應用啟動的耗時,包括新程序的啟動和 Activity 的啟動,但不包括前一個應用Activity pause的耗時(真正的啟動耗時)

ThisTime: 表示一連串啟動 Activity 的最後一個 Activity 的啟動耗時