最近,我的应用程序在猴子之后获得了很大的本机内存,我无法手动复制,因此我只能通过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
答案 0 :(得分:0)
为了获得有关内存消耗的详细信息,您实际上可以使用“ Android Profiler”。您可以获得有关可能正在使用/存储应用程序内存的各种组件的详细信息。