android 系统 (103)---系统memory使用状况

 如何抓取系统memory使用状况

当出现系统memory不足导致高优先级进程被kill等异常时,需要抓取一段时间内的memory使用情况.

一. 在使用Mali GPU平台上使用如下脚本抓取.
    具体测试手法如下:
    1. 先将手机时间设置成和PC一样,清除mtklog,开启mobilelog.
    2. 双击此脚本。
    3. 出现问题后,停止脚本(Ctrl+C)将mobilelog和D:\MemLog一起打包

脚本内容:

@echo off
set logpath1=D:\MemLog\procrank.txt
set logpath2=D:\MemLog\GPU_memory_usage.txt
set logpath4=D:\MemLog\meminfo.txt
set logpath5=D:\MemLog\librank.txt
set logdir= D:\MemLog
del %logdir%
:loop
 echo %date%  %time%
 echo %date%  %time% >> %logpath1% 
 adb shell procrank -u >> %logpath1%  
 echo %date%  %time% >> %logpath2%
 adb shell cat /proc/mali/memory_usage  >> %logpath2%
 echo %date%  %time% >> %logpath4%
 adb shell cat proc/meminfo  >> %logpath4% 
 echo %date%  %time% >> %logpath5%
 adb shell librank  >> %logpath5%
 echo "wait 5s to next catch"
 ping -n 5 127.0.0.1>nul 
 
 goto loop
 
 
二. 在非Mali GPU平台上使用如下脚本:
 
@echo off
set logpath1=D:\MemLog\procrank.txt
set logpath4=D:\MemLog\meminfo.txt
set logdir= D:\MemLog
del %logdir%
:loop
 echo %date%  %time%
 echo %date%  %time% >> %logpath1% 
 adb shell procrank -u >> %logpath1%  
 echo %date%  %time% >> %logpath4%
 adb shell cat proc/meminfo  >> %logpath4% 
 echo "wait 5s to next catch"
 ping -n 5 127.0.0.1>nul 
 
 goto loop
 
三. 当确认是某个AP进程占用memory多,需要再监控对应进程时.
    在Mali GPU平台使用如下脚本。 
    双击后输入对应进程的PID后开始抓取  

@echo "please input the target pid :"
@echo off
adb shell ps
set processid=
set /p processid=Please Input process id to catch:
@echo off
set logpath1=D:\MemLog\procrank.txt
set logpath2=D:\MemLog\GPU_memory_usage.txt
set logpath3=D:\MemLog\Mem-%processid%.txt
set logpath4=D:\MemLog\meminfo.txt
set logpath5=D:\MemLog\librank.txt
set logdir= D:\MemLog
del %logdir%
:loop
 echo %date%  %time%
 echo %date%  %time% >> %logpath1% 
 adb shell procrank -u >> %logpath1%  
 echo %date%  %time% >> %logpath2%
 adb shell cat /proc/mali/memory_usage  >> %logpath2%
 echo %date%  %time% >> %logpath3%
 adb shell dumpsys meminfo %processid% >> %logpath3%  
 echo %date%  %time% >> %logpath4%
 adb shell cat proc/meminfo  >> %logpath4% 
 echo %date%  %time% >> %logpath5%
 adb shell librank  >> %logpath5%
 echo "wait 5s to next catch"
 ping -n 5 127.0.0.1>nul 
 
 goto loop 

四.  当确认是某个AP进程占用memory多时,需要再监控对应进程时.
     在非Mali GPU平台使用如下脚本。 
     双击后输入对应进程的PID后开始抓取 

@echo "please input the target pid :"
@echo off
adb shell ps
set processid=
set /p processid=Please Input process id to catch:
@echo off
set logpath1=D:\MemLog\procrank.txt
set logpath3=D:\MemLog\Mem-%processid%.txt
set logpath4=D:\MemLog\meminfo.txt
set logdir= D:\MemLog
del %logdir%
:loop
 echo %date%  %time%
 echo %date%  %time% >> %logpath1% 
 adb shell procrank -u >> %logpath1%  
 echo %date%  %time% >> %logpath3%
 adb shell dumpsys meminfo %processid% >> %logpath3% 
 echo %date%  %time% >> %logpath4%
 adb shell cat proc/meminfo  >> %logpath4%
 echo "wait 5s to next catch"
 ping -n 5 127.0.0.1>nul 
 
 goto loop  

猜你喜欢

转载自blog.csdn.net/zhangbijun1230/article/details/80720556