Android内存泄露利器(内存统计篇) (转)
set /a cnt=0for %%i in (%processName%) do (set str=%%iset str=!str:.= !call getSubStr "!str!" -1set result=!getSubStr~result!if !cnt! EQU 0 (set processShortName=!result!) else (set processShortName=!processShortName!;!result!)set /a cnt+=1)) else (set /a cnt=0for %%i in (%processShortName%) do (set /a cnt=!cnt!+1)if not !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 genSerialset serial=!genSerial~result!set meminfoFile=%rawDatadir%\meminfo%serial%.txtset slipChar=,:Loop0Start:set /a processTotalNumber=cntset /a processNo=0:Loop0Headcall getSubStr "%processShortName%" %processNo%set curProcessShortName=%getSubStr~result%call getSubStr "%processName%" %processNo%set curProcessName=%getSubStr~result%:GetRawMemInfoFileset statFile=%outRoot%\%statFilePrefix%_Memory_%curProcessShortName%.txtadb shell "dumpsys meminfo %curProcessName%" >%meminfoFile%if not exist %statFile% (set slipChar=goto ReadRawMemInfoFile):ReadMemInfoStatisticFileset NativeSize=set DalvikSize=set OtherSize=set TotalSize=set NativeAllocated=set DalvikAllocated=set OtherAllocated=set TotalAllocated=set NativePSS=set DalvikPSS=set OtherPSS=set TotalPSS=set NativeFree=set DalvikFree=set OtherFree=set TotalFree=set /a cnt=0FOR /F "delims=: tokens=2" %%i in (%statFile%) do (if !cnt! EQU 0 (set NativeSize=%%i)if !cnt! EQU 1 (set DalvikSize=%%i)?if !cnt! EQU 2 (set NativeAllocated=%%i)?if !cnt! EQU 3 (set DalvikAllocated=%%i)?if !cnt! EQU 4 (set NativePSS=%%i)?if !cnt! EQU 5 (set DalvikPSS=%%i)??set /a cnt+=1):ReadRawMemInfoFileset /a cnt=0FOR /F "skip=1 tokens=1,2,3,4,5,6,7,8" %%i in (%meminfoFile%) do (if !cnt! EQU 4 (set NativeSize=!NativeSize!%slipChar%%%jset DalvikSize=!DalvikSize!%slipChar%%%kset OtherSize=!OtherSize!%slipChar%%%lset TotalSize=!TotalSize!%slipChar%%%m)?if !cnt! EQU 5 (set NativeAllocated=!NativeAllocated!%slipChar%%%jset DalvikAllocated=!DalvikAllocated!%slipChar%%%kset OtherAllocated=!OtherAllocated!%slipChar%%%lset TotalAllocated=!TotalAllocated!%slipChar%%%m)if !cnt! EQU 6 (set NativeFree=!NativeFree!%slipChar%%%jset DalvikFree=!DalvikFree!%slipChar%%%kset OtherFree=!OtherFree!%slipChar%%%lset TotalFree=!TotalFree!%slipChar%%%m)if !cnt! EQU 7 (set NativePSS=!NativePSS!%slipChar%%%kset DalvikPSS=!DalvikPSS!%slipChar%%%lset OtherPSS=!OtherPSS!%slipChar%%%mset TotalPSS=!TotalPSS!%slipChar%%%n)set /a cnt+=1?):SaveToMemInfoStatisticFileecho NativeSize:%NativeSize%>%statFile%echo DalvikSize:%DalvikSize%>>%statFile%echo NativeAllocated:%NativeAllocated%>>%statFile%echo DalvikAllocated:%DalvikAllocated%>>%statFile%echo NativePSS:%NativePSS%>>%statFile%echo DalvikPSS:%DalvikPSS%>>%statFile%:Loop0Tailset /a processNo+=1if %processNo% LSS %processTotalNumber% (goto Loop0Head):Loop0Endecho success!endlocal注意:需要把bat库genSerial.bat,getSubStr.bat放在子目录lib中。关于它们的更多内容请参考《getSubStr》,《genSerial》关于更多的Android内存泄露利器请阅读《Android内存泄露利器(Hprof篇)》,《Android内存泄露利器(全自动篇)》
Android内存储器泄露利器(内存统计篇) (转)
Android内存泄露利器(内存统计篇) (转)set /a cnt0for %%i in (%processName%) do (set str%%iset str!
