Czy ktoś może dać mi szczegółowe wyjaśnienie dotyczące profilu uzyskanego przez adb shell dumpsys meminfo my-app-name
?Szczegółowe wyjaśnienie profilu z "adb shell dumpsys meminfo my-app-name"?
Rezultat jest tak samo, jak to wspomniano poniżej w How do I discover memory usage of my application in Android?:
** MEMINFO in pid 890 [process-name] **
native dalvik other total
size: 10940 7047 N/A 17987
allocated: 8943 5516 N/A 14459
free: 336 1531 N/A 1867
(Pss): 4585 9282 11916 25783
(shared dirty): 2184 3596 916 6696
(priv dirty): 4504 5956 7456 17916
Objects
Views: 149 ViewRoots: 4
AppContexts: 13 Activities: 0
Assets: 4 AssetManagers: 4
Local Binders: 141 Proxy Binders: 158
Death Recipients: 49
OpenSSL Sockets: 0
SQL
heap: 205 dbFiles: 0
numPagers: 0 inactivePageKB: 0
activePageKB: 0
Co oznacza każda kolumna (native, Dalvik, inne, łącznie) oznacza? szczególnie co to jest "inna" kolumna (nie wiem, co to jest poza rdzennym i dalvik)? Byłoby wspaniale, gdyby ktoś mógł podać konkretny przykład, aby to rozwinąć. np. Mam aplikację A. A ma własny obiekt obj_private i własną bibliotekę macierzystą lib_private. Poza tym A odwołuje się do jakiegoś obiektu platformy Android obj_shared i do jakiejś natywnej biblioteki lib_shared. I obj_shared odwołuje się do natywnej biblioteki Androida lib_shared_indirect. W takim przypadku, czy mogę to powiedzieć?
- "całkowita wielkość" równa się zawartości pamięci użytkownik "obj_private + lib_private + obj_shared + lib_shared + lib_shared_indirect".
- „prywatne brudny” równa pamięć zanieczyszczona przez „obj_private + lib_private”
Powodem chcemy jasno o to: istnieją pewne niezwykły wzrost runtime-pamięć o naszej najnowszej wersji aplikacji w porównaniu do poprzedniej wersja. I kiedy użyłem meminfo dumpsys, zauważyłem, że kolumny "rodzime" i "inne" dramatycznie wzrosły. Ale zmiana nowej wersji jest związana tylko z Javą i nie ma wyjaśnienia na temat "innej" kolumny. Przeszukałem go i nie znalazłem żadnego dokumentu. Próbowałem również odczytać kod źródłowy adb. Ale odkryłem, że łatwo jest zgubić się w kodzie źródłowym dla początkujących, takich jak ja. Dlatego zamieszczam to pytanie na wypadek, gdyby ktoś mógł pomóc.
Proszę sprawdzić http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android –