如何抓取系统memory使用状况

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

memory使用情况.

一. 在使用Mali GPU平台上(MT6572 MT6582 MT6592)使用如下脚本抓取.

具体测试手法如下:

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

原文:http://bbs.16rd.com/thread-54279-1-148.html

你可能感兴趣的:(如何抓取系统memory使用状况)