adb shell dumpsys meminfo - What is the meaning of each cell of its output?

Mayank picture Mayank · Nov 6, 2014 · Viewed 22.1k times · Source

I was looking at the output given below for the command

adb shell dumpsys meminfo com.imangi.templerun

However, I am not able to understand this properly.

Can anybody help me understand this?

Temple Run memory info

Answer

gheni4 picture gheni4 · Jun 21, 2015

Since columns and rows presented may vary for different versions of 'dumpsys', I'll try to provide some generic overview here...

Every application in Android runs in different process that is running instance of its own Dalvik VM.

  • Native Heap row represents memory used by the process itself (Ex: Native C mallocs).
  • Dalvik Heap is memory allocated by Dalvik VM (Ex: Variables in your Java Android code).
  • Dalvik Other is memory used for JIT and GC.

Android may share pages of memory among several processes (Think code of common frameworks). Clean memory is one that hasn't changed since it was allocated or loaded from storage (Code of your application). Dirty memory is space used for computations. Android does not have swap mechanism so Dirty memory is also RAM that will be freed when app exits.

  • Private Dirty is unshared dirty memory (guess you figured that).
  • Private Clean is unshared clean memory (and that).
  • PSS Proportional Set Size: Is a tricky measurement where all private pages contribute 100% of their size and shared memory contribute 'size/(num of processes shared)'. This way if you sum up all PSS for all processes you'll get total memory used.
  • Swapped Dirty No idea. I have question regarding this:Android dumpsys meminfo "Swapped Dirty" coloumn meaning?

Further reading: https://developer.android.com/tools/debugging/debugging-memory.html