2013-07-29 14 views
5

Kiedy uruchamiam "ADB shell dumpsys meminfo" na Androidzie 4.2, otrzymuję wynik jakzapytanie o "dumpsys meminfo" w android

        Shared Private  Heap  Heap  Heap 
       Pss Dirty Dirty  Size Alloc  Free 
      ------ ------ ------ ------ ------ ------ 
    Native  28  8  28 16404 12256  3663 
    Dalvik 14062 10060 13736 20032 15254  4778 
    Cursor  0  0  0       
    Ashmem  0  0  0       
Other dev  4762  9556  0       
.so mmap 11699  1824  1500       
.jar mmap  0  0  0       
.apk mmap  368  0  0       
.ttf mmap  811  0  0       
.dex mmap  3736  0  0        
Other mmap  114  16  32       
    Unknown 12064  544 12052       
    TOTAL 47644 22008 27348 36436 27510  8441 

Czytałem stronę How do I discover memory usage of my application in Android?, ale nadal masz kilka pytań:

  • Dlaczego natywny Pss, wspólna brudna prywatna brud jest bardzo mała?
  • rozmiar sterty powinien być mniejszy niż Pss?
  • Co oznacza nieznany? Wydaje się bardzo duży.
  • Jeśli chcę wiedzieć, ile pamięci wykorzystuje moja aplikacja, z jakich danych mam korzystać? Total Pss? Ale nie zawiera natywnego Pss, który jest nealy zero?

Odpowiedz

2

Proszę odnieść się do pytania How do I discover memory usage of my application in Android?. Chciałbym również, abyś odsyłał do linku Detail VSS,RSS,PSS,USS. Najbardziej odpowiednie dane do wykorzystania dla konkretnej aplikacji jest USS (Unique Set Size) jako

USS jest całkowita pamięć prywatne dla procesu, to znaczy, że pamięć to jest całkowicie unikalny dla tego procesu. USS to niezwykle przydatna liczba, ponieważ wskazuje na rzeczywisty dodatkowy koszt uruchomienia danego procesu. Po zabiciu procesu USS jest całkowitą pamięcią, która jest faktycznie zwracana do systemu. USS to najlepsza liczba do obejrzenia, gdy początkowo podejrzane o wycieki pamięci w procesie.

które można uzyskać przez adb shell procrank | grep <your.package.name>