Example 1
int cnt=0;
final static int kbufferminsize=1000;
final static int kbuffermaxsize=2000;
StringBuffer strbuffer=new StringBuffer (kbufferminsize);
StringBuffer strbuffer2=new StringBuffer (kbufferminsize);
StringBuffer strbuffer3=new StringBuffer (kbufferminsize);
StringBuffer strbuffernativepss=new StringBuffer (kbufferminsize);
StringBuffer strbufferdalvikpss=new StringBuffer (kbufferminsize);
StringBuffer strbufferotherpss=new StringBuffer (kbufferminsize);
Debug.memoryinfo memoryinfo=new debug.memoryinfo ();
Final static String tag= "Robin";
void Printmemory ()
{
Long Totalmemory=runtime.getruntime (). TotalMemory ();
Long Freememory=runtime.getruntime (). Freememory ();
Long usedmemory= (totalmemory-freememory) >>10;
totalmemory=totalmemory>>10;
freememory=freememory>>10;
if (Strbuffer.length () >kbuffermaxsize)
{
Strbuffer.delete (0,strbuffer.length ());
Strbuffer2.delete (0,strbuffer2.length ());
Strbuffer3.delete (0,strbuffer3.length ());
Strbuffernativepss.delete (0,strbuffernativepss.length ());
Strbufferdalvikpss.delete (0,strbufferdalvikpss.length ());
}
Strbuffer.append (usedmemory+ ",");
Strbuffer2.append (totalmemory+ ",");
Strbuffer3.append ((Debug.getnativeheapsize () >>10) + ",");
Debug.getmemoryinfo (Memoryinfo);
Strbuffernativepss.append ((MEMORYINFO.NATIVEPSS) + ",");
Strbufferdalvikpss.append ((MEMORYINFO.DALVIKPSS) + ",");
if (cnt++%10==0)
{
LOG.I (Tag, "Usedmemory:" +strbuffer.tostring ());
LOG.I (Tag, "TotalMemory:" +strbuffer2.tostring ());
LOG.I (Tag, "Nativeheapsize:" +strbuffer3.tostring ());
LOG.I (Tag, "Native PSS:" +strbuffernativepss.tostring ());
LOG.I (Tag, "Dalvik PSS:" +strbufferdalvikpss.tostring ());
}
}
Note that for the output of the memory information log, we can use a little editing to be used in the Excel production chart, more intuitive analysis.
How to view memory in Android (bottom)