• adb shell dumpsys meminfo 详解


    dumpsys meminfo详解
    adb shell dumpsys meminfo [pkg/pid] 可以用来查看指定进程包名的内存使用情况

    dumpsys meminfo -h 帮助
    meminfo dump options: [-a] [-d] [-c] [-s] [--oom] [process]

    -a: include all available information for each process.
    -d: include dalvik details.
    -c: dump in a compact machine-parseable representation.
    -s: dump only summary of application memory usage.
    -S: dump also SwapPss.
    --oom: only show processes organized by oom adj.
    --local: only collect details locally, don't call process.
    --package: interpret process arg as package, dumping all
    processes that have loaded that package.
    --checkin: dump data for a checkin
    If [process] is specified it can be the name or
    pid of a specific process to dump.

    名词概念:

    • 虚拟内存:进程空间内的虚拟内存地址,理论上32位cpu一个进程有4GB的虚拟内存可以使用。
    • 物理内存:就是真正写的到内存条上的,真实地址对进程不可见,由操作系统把虚拟内存地址映射到物理内存地址。
    • Size:指的就是分配了多少虚拟内存
    • Rss、Pss指的是实际物理内存使用的大小,由于这个内存段是纯new出来的,没有共享库,所以这两个值是一样的。由于只给4MB的数组赋值,操作系统只给分配了4MB的真实物理内存。
    • Objects是统计App内部组件对象个数,其中Views、ViewRootImpl以及Activities个数,在Activity onDestroy后应该都会回收清零,如果onDestroy调用后这几个对象个数没有清零,就可能发生了内存泄漏。
    • android程序内存被分为2部分:native和dalvik,dalvik就是java堆,普通java对象是在java堆分配,而bitmap是直接在native上分配,对于内存的限制是 native+dalvik 不能超过最大限制。

    名词解释:

     名词说明 补充 

    Uptime

    表示启动到现在的时长,不包含休眠的时间,单位毫秒(ms)

    Realtime

    表示启动到现在的时长,包含休眠的时间,单位毫秒(ms)

    Native Heap

    指c 中malloc出来的堆空间

     扩展:c++申请的内存为native process,java申请的内存:java process

    Dalvik Heap

    指java中new出来的java堆空间

    只是占用的虚拟内存的空间
    Pss Total指占用了真实的物理内存的空间
    private dirty指私有驻留内存扩展:进程内存空间是虚拟内存,区分于物理内存,进程无法直接操作物理内存RAM。必要时,操作系统对其进行映射,使进程能应用到物理内存
    Heap Size指占用总内存(Heap  堆)
    Heap Alloc指在虚拟地址中分配了这么多空间
    Heap Free空闲内存

       注:因为Android系统对dalvik的vm heapsize作了硬性限制,当java进程申请的java空间超过阈值时,就会抛出OOM异常(这个阈值可以是48M、24M、16M等,视机型而定)

       查看单个应用最大内存限制,输入命令:getprop|grep heapgrowthlimit  得到结果该机型为192M。dalvik process 超过就会抛OOM异常

    1. Applications Memory Usage (in Kilobytes):
    2. Uptime: 246353123 Realtime: 292602983
    3. ** MEMINFO in pid 8410 [com.doctopia.zeroe] **
    4. Pss Private Private SwapPss Heap Heap Heap
    5. Total Dirty Clean Dirty Size Alloc Free
    6. ------ ------ ------ ------ ------ ------ ------
    7. Native Heap 52421 52336 24 0 82432 61868 20563
    8. Dalvik Heap 31844 31816 4 0 38652 30460 8192
    9. Dalvik Other 14051 14048 0 12
    10. Stack 3640 3640 0 28
    11. Ashmem 80 48 0 0
    12. Gfx dev 12848 12288 560 0
    13. Other dev 76 0 76 0
    14. .so mmap 2292 936 252 95
    15. .jar mmap 0 0 0 0
    16. .apk mmap 1642 76 1064 0
    17. .ttf mmap 0 0 0 0
    18. .dex mmap 6073 5860 132 4
    19. .oat mmap 2153 0 0 0
    20. .art mmap 2682 2408 8 82
    21. Other mmap 312 8 184 0
    22. EGL mtrack 432 432 0 0
    23. GL mtrack 26160 26160 0 0
    24. Unknown 14579 14576 0 18
    25. TOTAL 171524 164632 2304 239 121084 92328 28755
    26. App Summary
    27. Pss(KB)
    28. ------
    29. Java Heap: 34232
    30. Native Heap: 52336
    31. Code: 8320
    32. Stack: 3640
    33. Graphics: 39440
    34. Private Other: 28968
    35. System: 4588
    36. TOTAL: 171524 TOTAL SWAP PSS: 239
    37. Objects
    38. Views: 821 ViewRootImpl: 2
    39. AppContexts: 6 Activities: 3
    40. Assets: 6 AssetManagers: 3
    41. Local Binders: 62 Proxy Binders: 36
    42. Parcel memory: 24 Parcel count: 98
    43. Death Recipients: 2 OpenSSL Sockets: 25
    44. WebViews: 1
    45. SQL
    46. MEMORY_USED: 279
    47. PAGECACHE_OVERFLOW: 76 MALLOC_SIZE: 62
    48. DATABASES
    49. pgsz dbsz Lookaside(b) cache Dbname
    50. 4 24 38 1254/33/7 /data/user/0/com.doctopia.zeroe/databases/sensorsdata
    51. 4 60 136 141/56/20 /data/user/0/com.doctopia.zeroe/databases/bugly_db_
    52. Asset Allocations
    53. zip:/data/app/com.doctopia.zeroe-1/base.apk:/resources.arsc: 972K

    其他常用服务信息查询

    • 内存 adb shell dumpsys meminfo
    • CPU adb shell dumpsys cpuinfo
    • 帧率 adb shell dumpsys gfxinfo
    • 显示 adb shell dumpsys display
    • 电源 adb shell dumpsys power
    • 电池状态 adb shell dumpsys batterystats
    • 电池 adb shell dumpsys battery
    • 闹钟 adb shell dumpsys alarm
    • 位置 adb shell dumpsys location
  • 相关阅读:
    调用okhttp3的案例代码
    2022.08.19 java web学习
    五、2023.10.1.C++stl.5
    水文科技新仪器——地埋式积水探测器
    vim的列模式进行替换、删除、插入
    【878. 第 N 个神奇数字】
    XXL-JOB定时任务框架(Oracle定制版)
    [附源码]Python计算机毕业设计SSM家政服务预约小程序(程序+LW)
    详细梳理山姆·奥特曼离职闹剧 仍试图重返OpenAI
    爱心动画效果,教你如何更改颜色背景的爱心
  • 原文地址:https://blog.csdn.net/ch_kexin/article/details/127732321