zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

Android查看CPU和GPU使用率(五十五)

AndroidCPU 查看 GPU 使用率
2023-09-14 09:09:56 时间

Android查看CPU和GPU使用率

1、top -t 能打印出线程级别的CPU使用情况

0.打印进程的堆栈信息。从堆栈信息里可以通过.so辨别哪个线程是干什么的,从而在 top -t 的结果里去查找你想要的那个线程的 CPU 使用情况。
# debuggerd -b <pid>

1.查看高通821 GPU使用率
# adb shell cat /sys/class/kgsl/kgsl-3d0/gpu_busy_percentage

2.查看某个进程里所有线程
# ps | grep mediaserver
# ps -t u0_a85

3.查看线程排行前30CPU使用率
# top -t -m 30 -s cpu -d 1

参数含义:
PID  : progress identification,应用程序ID
S    : 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
#THR : 程序当前所用的线程数
VSS  : Virtual Set Size虚拟耗用内存(包含共享库占用的内存)
RSS  : Resident Set Size实际使用物理内存(包含共享库占用的内存)
PCY  : 前台(fg)和后台(bg)进程
UID  : User Identification,用户身份ID
Name : 应用程序名称
注意第一列的pid,使用pid值可以查看当前程序的内存使用情况。

4.查看指定程序(mediaserver)内存使用情况
# dumpsys meminfo mediaserver

参数含义:
dalvik : dalvik使用的内存
native : native堆上的内存,指C\C++堆的内存(android 3.0以后bitmap就是放在这儿)
other  : 除了dalvik和native的内存,包含C\C++非堆内存······
Pss    : 该内存指将共享内存按比例分配到使用了共享内存的进程
allocated : 已使用的内存
free      : 空闲的内存
private dirty : 非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使你的进程已经退出,该内存也不会被释放)
share dirty   : 共享,但有不能被换页出去的内存

4.使用CPUZ.app(获取CPU温度/型号等)
<1>.查看cpu使用频率范围
# cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies 
408000 600000 816000 1008000 1200000 1296000

<2>>获取cpu当前频率
# cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq 

<3>.获取cpu与sensor温度
# cat /sys/class/thermal/thermal_zone*/temp  

5.cpu定频设置,设为:1008000HZ
echo 1008000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq                                                                                                                                            
echo 1008000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq                                                                                                                                            
echo 1008000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq                                                                                                                                            
echo 1008000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq                                                                                                                                            
                                                                                                                                                                                                                
echo 1008000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq                                                                                                                                            
echo 1008000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq                                                                                                                                            
echo 1008000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq                                                                                                                                            
echo 1008000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq