cpu利用率

APP_CPU使用率

來(lái)自:https://www.cnblogs.com/yomia/p/15499031.html

一、CPU使用率原理

android系統(tǒng)內(nèi)核是基于linux,在linux系統(tǒng)下 CPU 利用率分為用戶(hù)態(tài)、系統(tǒng)態(tài)、空閑態(tài)

用戶(hù)態(tài):表示CPU處于用戶(hù)態(tài)執(zhí)行的時(shí)間

系統(tǒng)態(tài):系統(tǒng)內(nèi)核執(zhí)行的時(shí)間

空閑態(tài):空閑系統(tǒng)進(jìn)程執(zhí)行的時(shí)間


CPU利用率=CPU執(zhí)行非系統(tǒng)空閑進(jìn)程的時(shí)間/CPU總的執(zhí)行時(shí)間。這里的時(shí)間含義如下:

HZ:? Linux 核心每隔固定周期會(huì)發(fā)出 timer interrupt(時(shí)鐘中斷),HZ是用來(lái)定義每一秒有幾次時(shí)鐘中斷。例如 HZ 為1000,就代表每秒有1000 次時(shí)鐘中斷。

Jiffies: 在Linux的內(nèi)核中,有一個(gè)全局變量:Jiffies。Jiffies代表時(shí)間。它的單位隨硬件平臺(tái)的不同而不同。Jiffies的單位就是1/HZ

Intel 平臺(tái)Jiffies的單位是1/100秒,這就是系統(tǒng)所能分辨的最小時(shí)間間隔。每個(gè)CPU時(shí)間片,Jiffies都要加1

CPU利用率計(jì)算公式:CPU利用率=(用戶(hù)態(tài)Jiffies + 系統(tǒng)態(tài) Jiffies)/ 總Jiffies


二、CPU測(cè)試方法

使用top命令查看哪些進(jìn)程是CPU的主要消耗者

>adb shell?

>top --help


-m? 最多顯示多少個(gè)進(jìn)程

-n 刷新次數(shù)

-d ?刷新間隔時(shí)間(默認(rèn)5秒)

-s 按哪列排序


adb shell top命令

> adb shell top


第一組數(shù)據(jù)的含義:

400%cpu: CPU總量

33%user: 用戶(hù)空間占用CPU的百分比

0%nice: 改變過(guò)優(yōu)先級(jí)的進(jìn)程占用cpu的百分比

30%sys? ?內(nèi)核空間占用cpu的百分比

337%idle? 空閑cpu百分比

0%iow? ?IO等待占用cpu的百分比

0%irq? ?硬中斷(Hardware IRQ)占用cpu的百分比

0%sirq? 軟中(Software Interrupts)占用CPU的百分比


第二組數(shù)據(jù)的含義:

PID???進(jìn)程id

USER: 進(jìn)程所有者

PR:進(jìn)程優(yōu)先級(jí)

NI: nice值。負(fù)值表示高優(yōu)先級(jí),正值表示低優(yōu)先級(jí)

VIRT:進(jìn)程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RES?

RES:進(jìn)程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATA

SHR:共享內(nèi)存大小,單位kb

S :進(jìn)程狀態(tài):D=不可中斷的睡眠狀態(tài), R=運(yùn)行, S=睡眠, T=跟蹤/停止, Z=僵尸進(jìn)程

%CPU:上次更新到現(xiàn)在的CPU時(shí)間占用百分比

%MEM:進(jìn)程使用的物理內(nèi)存百分比

TIME+:進(jìn)程使用的CPU時(shí)間總計(jì),單位1/100秒

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容