如何在Android上分析本机内存?

时间:2018-10-17 03:41:16

标签: android native swap

最近,我的应用程序在猴子之后获得了很大的本机内存,我无法手动复制,因此我只能通过Android profiler进行分析。它在本机堆上交换时显示255264K内存,但是我在android profiler中看不到它,所以我指的是SMAP文件。我可以看到交换时有129M的大型malloc。

               Pss  Private  Private  SwapPss     Heap     Heap     Heap
             Total    Dirty    Clean    Dirty     Size    Alloc     Free
            ------   ------   ------   ------   ------   ------   ------

本机堆75741 75496 220 255264 374656 331568 43087

Dalvik堆6606 5536 1032 0 18020 5748 12272

Dalvik其他6844 6844 0 36

    Stack       52       52        0       24
   Ashmem       14       12        0        0
  Gfx dev    17488    16652      836        0
Other dev       21        4       16        0
 .so mmap    19382      224    14992     1063
.jar mmap        8        8        0        0
.apk mmap    19678       32    17360       20
.ttf mmap     7134        0     5752        0
.dex mmap    13703        0     8668        8
.oat mmap     2786        0      712        0
.art mmap     4541     3844      344      108

其他mmap 1997 4 1688 0    EGL mtrack 29388 29388 0 0     GL mtrack 19036 19036 0 0       未知2227 2144 76549         总计483718 159276 51696 257072 392676 337316 55359

9c800000-a4c00000 rw-p 00000000 00:00 0
                              [anon:libc_malloc]

名称:[anon:libc_malloc]

大小:135168 kB

Rss:5296 kB

Pss:5296 kB

Shared_Clean:0 kB

Shared_Dirty:0 kB

私人清洁:0 kB

Dirty:5296 kB

参考:4788 kB

匿名:5296 kB

AnonHugePages:0 kB

Shared_Hugetlb:0 kB

Private_Hugetlb:0 kB

交换:129872 kB

SwapPss:129872 kB

KernelPageSize:4 kB

MMUPageSize:4 kB

已锁定:0 kB

现在,我的问题是: 1.如何获取有关此内存的更多信息?

2。一次有129M内存分配吗?应用程序如何一次获得这么多苦头。

3。为什么此内存直接在swap上分配? enter image description here

1 个答案:

答案 0 :(得分:0)

为了获得有关内存消耗的详细信息,您实际上可以使用“ Android Profiler”。您可以获得有关可能正在使用/存储应用程序内存的各种组件的详细信息。