gpt4 book ai didi

android - dalvik-LinearAlloc、dalvik-aux-structure、dalvik-bitmap-1、dalvik-bitmap-2、dalvik-card-table、dalvik-mark-stack 和 dalvik-zygote 中的数据是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:43:40 25 4
gpt4 key购买 nike

我在 PID 上使用 showmap 命令,但我无法理解报告中的这一部分:

 16384     3752      689        0     3132        0      620    4 /dev/ashmem/dalvik-LinearAlloc (deleted)
2460 1748 934 0 828 0 920 18 /dev/ashmem/dalvik-aux-structure (deleted)
8192 572 572 0 0 0 572 1 /dev/ashmem/dalvik-bitmap-1 (deleted)
8192 0 0 0 0 0 0 1 /dev/ashmem/dalvik-bitmap-2 (deleted)
4100 312 312 0 0 0 312 1 /dev/ashmem/dalvik-card-table (deleted)
502140 14860 14860 0 0 0 14860 3 /dev/ashmem/dalvik-heap (deleted)
1500 280 280 0 0 0 280 1 /dev/ashmem/dalvik-jit-code-cache (deleted)
174764 0 0 0 0 0 0 1 /dev/ashmem/dalvik-mark-stack (deleted)
22148 22148 2141 0 20452 0 1696 1 /dev/ashmem/dalvik-zygote (deleted)

我想知道 dalvik-LinearAlloc、dalvik-aux-structure、dalvik-bitmap-1、dalvik-bitmap-2、dalvik-card-table、dalvik-mark-stack 和 dalvik-zygote 中有什么数据。

这些ashmem占用了数百万字节的内存,我想找到一种方法来缩小这些ashmem的大小。

最佳答案

showmap 正在转储来自一个进程的 smap 数据。 smap 描述了进程内存区域的详细信息。在虚拟内存管理系统中,可以通过mmapbrk等系统API获取内存。通过这些API获得虚拟内存地址后,地址长度会记录在smap中。

然后让我们列出每个部分的 dalvik 相对内存使用情况:

  • Dalvik 堆部分(堆管理,GC)
    • dalvik-bitmap-1、dalvik-bitmap-2 是 Dalvik Heap 管理数据结构。在 Dalvik 中,GC 是 marksweep,8 字节内存将被标记(已使用或空闲)为位图中的一位。这两个位图将用作 Activity 图(用于标记@运行时),另一个将用作标记图(用于@GC时间)。
    • dalvik-mark-stack:用于 GC 标记步骤。标记步骤将迭代位图,因此这是一个需要堆栈的广度优先搜索。
    • dalvik-card-table: 用于Dalvik Concurrent GC,在位图标记步骤中,该进程将执行其他会导致使用内存的任务。这些卡片表在第一次标记步骤后记录内存脏。搜索mark sweep GC可以看到详细信息。
    • dalvik-heap 用于进程内存使用
    • dalvik-zygote 是 hole heap 的一部分,不会被@GC 使用。所有进程将共享这些内存,例如框架资源。
  • dalvik-jit 是 Dalvik 中使用的 jit 内存。 JIT:及时,将dex字节码转换为CPU可以执行的机器码。
  • dalvik-LinearAlloc:是dalvik 的perm 内存,例如:方法、类定义数据、线程堆栈数据。这些内存可以在解析类定义后设置为READONLY
  • dalvik-aux-structure:辅助数据结构,将压缩方法/类/字符串常量引用。这些引用会被@每个dex文件使用,但是这些内存加起来会消耗很大的内存。所以 Dalvik 创建一个 tmp 内存来共享这些引用。

如果你想分析你程序的内存,我建议你在eclipse中使用MAT。而native heap的使用,可以使用mmap来管理。

关于android - dalvik-LinearAlloc、dalvik-aux-structure、dalvik-bitmap-1、dalvik-bitmap-2、dalvik-card-table、dalvik-mark-stack 和 dalvik-zygote 中的数据是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22299403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com