1.GPU / CPU 信息打印腳本
gpu_cpu_info.bat
@echo off echo "==================GPU======================" echo Used / Total: adb shell cat /sys/class/kgsl/kgsl-3d0/gpubusy echo Utilization rate: adb shell cat /sys/class/kgsl/kgsl-3d0/gpu_busy_percentage echo Max frequencies: adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/max_freq echo Min frequencies: adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/min_freq echo Available frequencies: adb shell cat /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies echo Current frequencies: adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/cur_freq echo Available governors: adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/available_governors echo Governors: adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/governor echo "==================CPU======================"
echo Available frequencies:
adb shell cat echo Max frequencies: adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq echo Min frequencies: adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq echo Current frequencies: adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq echo "===========================================" ping 127.0.0.1 -n 3 > nul %0 @循環執行腳本 pause
2.進程/線程 性能信息:
1.打印進程的堆棧信息。從堆棧信息里可以通過.so辨別哪個線程是干什么的,從而在 top -t 的結果里去查找你想要的那個線程的 CPU 使用情況。 # debuggerd -b <pid>
2.查看某個進程里所有線程 # ps -A | grep camera
cameraserver 642 1 176344 50940 binder_ioctl_write_read 0 S android.hardware.camera.provider@2.4-service_64 cameraserver 902 1 40100 18452 binder_ioctl_write_read 0 S cameraserver
# ps -T 642
USER PID TID PPID VSZ RSS WCHAN ADDR S CMD cameraserver 642 642 1 176344 50940 binder_io+ 0 S provider@2.4-se cameraserver 642 718 1 176344 50940 poll_sche+ 0 S provider@2.4-se cameraserver 642 754 1 176344 50940 futex_wai+ 0 S SyncManager_0 cameraserver 642 755 1 176344 50940 poll_sche+ 0 S provider@2.4-se cameraserver 642 1535 1 176344 50940 futex_wai+ 0 S provider@2.4-se cameraserver 642 1547 1 176344 50940 futex_wai+ 0 S provider@2.4-se cameraserver 642 1549 1 176344 50940 futex_wai+ 0 S provider@2.4-se cameraserver 642 1550 1 176344 50940 futex_wai+ 0 S provider@2.4-se cameraserver 642 1551 1 176344 50940 futex_wai+ 0 S provider@2.4-se cameraserver 642 1552 1 176344 50940 futex_wai+ 0 S provider@2.4-se cameraserver 642 1553 1 176344 50940 futex_wai+ 0 S provider@2.4-se cameraserver 642 1554 1 176344 50940 futex_wai+ 0 S provider@2.4-se cameraserver 642 1555 1 176344 50940 poll_sche+ 0 S provider@2.4-se cameraserver 642 1562 1 176344 50940 poll_sche+ 0 S provider@2.4-se cameraserver 642 1582 1 176344 50940 binder_io+ 0 S HwBinder:642_1 cameraserver 642 1583 1 176344 50940 binder_io+ 0 S HwBinder:642_2 cameraserver 642 1584 1 176344 50940 binder_io+ 0 S HwBinder:642_3 cameraserver 642 1585 1 176344 50940 binder_io+ 0 S HwBinder:642_4 cameraserver 642 4586 1 176344 50940 poll_sche+ 0 S HwBinder:642_1
查看該進程ION Buffer情況:
# cat /sys/kernel/debug/dma_buf/dmaprocs | grep 642
provider@2.4-se (PID 642) size: 315848 dmabuf642 2544 3
3.查看線程內存占用和CPU使用率 # top 參數含義:
PID 進程號
USER 用戶名
PR 優先級
NI nice值。負值表示高優先級,正值表示低優先級m
RES 進程使用的、未被換出的物理內存大小,單位kb
SHR 共享內存大小,單位kb
S 進程狀態。
D=不可中斷的睡眠狀態
R=運行
S=睡眠
T=跟蹤/停止
Z=僵屍進程
%CPU CPU使用率
%MEM 進程使用的物理內存百分比
TIME+ 進程使用的CPU時間總計,單位1/100秒
4.查看指定程序(mediaserver)內存使用情況 # dumpsys meminfo mediaserver dumpsys [options]
meminfo 顯示內存信息
cpuinfo 顯示CPU信息
account 顯示accounts信息
activity 顯示所有的activities的信息
window 顯示鍵盤,窗口和它們的關系
wifi 顯示wifi信息