前言
rss(resident set size)表示實際使用物理記憶體(包含共享庫占用的記憶體)。
因為它包含了共享記憶體,所以他的意義不及pss。所以現在檢視記憶體使用情況一般參照pss。
因此現在一般不使用getprocessstate.bat,而是使用getmemorystate.bat
android記憶體洩露利器(記憶體統計篇)》
memory: vss/rss/pss/uss》
提取程序的rss
檔案:getprocessstate.bat
@echo off
call config.bat
set processnamecol=9
set rsscol=5
setlocal enabledelayedexpansion
set path=%path%;%cd%\lib
set /a processno=0
for %%i in (%
processname
%) do (
set /a processno+=1 )
set /a cnt=0
set str=
if "%
processshortname
%"=="" (
set /a cnt=0
for %%i in (%processname%) do (
set str=%%i
set str=!str:.= !
call getsubstr "!str!" -1
set result=!getsubstr~result!
if !cnt!
equ0 (
set processshortname=!result!
) else (
set processshortname=!processshortname!;!result! )
set /a cnt+=1 )
) else (
set /a cnt=0
for %%i in (%
processshortname
%) do (
set /a cnt=!cnt!+1 )
ifnot!cnt!
equ%processno% (
echo the number of process name is %processno%
echo the number of process short name is !cnt!
echo they should be equal.please check again!
exit 0 )
)if not exist %rawdatadir% (
md %rawdatadir% )
if not exist %outroot% (
md %outroot% )
call genserial
set serial=!genserial~result!
set psfile=%rawdatadir%\ps%serial%.txt
adb shell "
ps -x
" >%psfile%
adb shell exit
set /a cnt=0
for /f "skip=1 tokens=%
rsscol
%,%processnamecol
%" %%i in (%psfile%) do (
set /a cnt=0
for %%a in (%processname%) do (
if "%%a"=="%%j" (
call getsubstr "%
processshortname
%" !cnt!
set result=!getsubstr~result!
set statfile=%outroot%\%
statfileprefix
%_!result!.txt
if exist !statfile! (
>>!statfile! set/p=,%%i
) else (
>>!statfile! set/p=%%i )
)set /a cnt=!cnt!+1 )
)echo success!
endlocal
執行一次
getprocessstate.bat來從手機提取程序的rss,
輸出到乙個以程序名命名的文字檔案,以便在excel中生產圖表檔案。
注意:需要把bat庫genserial.bat,getsubstr.bat放在
子目錄lib中。
getsubstr
》,《genserial
》
android記憶體洩露利器(hprof篇)
》,《android記憶體洩露利器(記憶體統計篇)
》, 《
android記憶體洩露利器(全自動篇)
》
Android記憶體洩露利器(hprof篇)
我們可以使用 生成 hprof 然後使用批處理hprof檔案,然後用mat進行對多個 hprof檔案 比較分析。一 批處理配置檔案 批處理配置檔案config.bat如下 rem the following var is for getprocessstate.bat set rawdatadir ...
Android記憶體洩露
android應用記憶體洩漏的的原因有以下幾個 1查詢資料庫後沒有關閉游標cursor 2 構造adapter時,沒有使用 convertview 重用 3 bitmap物件不在使用時呼叫recycle 釋放記憶體 4 物件被生命週期長的物件引用,如activity被靜態集合引用導致activity...
android 記憶體洩露
記憶體洩露情況 1 使用單例導致記憶體洩露 public class singleton public static singleton getsingleton context context return singleton 原因 靜態的單例使它的生命週期與應用的生命週期一樣長,context一...