内存管理-31-系统内存统计-6-dumpsys meminfo
一、dumpsys meminfo命令数据格式
基于Android-14(U)
# dumpsys meminfo Applications Memory Usage (in Kilobytes): Uptime: 2802229 Realtime: 2802229 Total RSS by process: 313,100K: com.sam.systemui (pid 1848 / activities) 169,676K: zygote64 (pid 789) 78,672K: surfaceflinger (pid 983) 23,076K: init (pid 1) 22,208K: android.hardware.audio.service.mediatek (pid 812) 9,972K: sh (pid 10262) ... Total RSS by OOM adjustment: 1,851,392K: Native 169,676K: zygote64 (pid 789) 21,144K: adbd (pid 10227) 6,744K: android.hardware.boot-service (pid 415) ... 478,508K: System 478,508K: system (pid 1116) //system_server 5,472,900K: Persistent 1,011,564K: com.sam.systemui (pid 2700) 135,884K: com.android.phone (pid 1853) ... 144,808K: Persistent Service 144,808K: com.android.providers.media.module (pid 2664) 926,208K: Foreground 184,780K: com.sam.car.settings (pid 1955 / activities) 158,308K: com.sam.caraccount (pid 4090) ... 2,230,584K: Visible 134,912K: com.sam.btphone (pid 5527) 111,776K: android.ext.services (pid 3481) (user 10) ... 2,248,828K: Perceptible 298,372K: com.sam.xpime (pid 6680) 109,052K: com.mediatek.location.mtkgeofence (pid 3072) ... 432,464K: B Services 150,188K: com.sam.cardiagnosis (pid 6306) 146,616K: com.sam.autoshow (pid 6268) 1,985,924K: Cached 142,932K: com.sam.appstore (pid 3227) 122,924K: com.android.rkpdapp (pid 4404) 121,332K: android.process.media (pid 10238) ... Total RSS by category: 3,211,292K: .so mmap 2,734,456K: Native 2,360,968K: .art mmap 2,219,852K: .jar mmap 1,278,964K: Dalvik 897,860K: .apk mmap 790,088K: Unknown 785,988K: .oat mmap 666,164K: GL mtrack 310,316K: Other mmap 190,000K: Dalvik Other 107,376K: .dex mmap 92,688K: Other dev 59,080K: Ashmem 54,824K: Stack 11,700K: .ttf mmap 0K: Cursor 0K: Gfx dev 0K: EGL mtrack 0K: Other mtrack Total PSS by process: 1,022,509K: com.sam.carspeech (pid 3186) 302,883K: system (pid 1116) //system_server 55,368K: surfaceflinger (pid 983) 16,719K: adbd (pid 10227) ... Total PSS by OOM adjustment: 1,722,628K: Native 165,303K: mtkfastavm (pid 2765) 86,557K: camerahalserver (pid 1208) 55,368K: surfaceflinger (pid 983) ... 302,883K: System 302,883K: system (pid 1116) //system_server 2,538,575K: Persistent 872,594K: com.sam.instrument (pid 2700) 6,862K: com.android.se (pid 1819) ... 24,735K: Persistent Service 24,735K: com.android.providers.media.module (pid 2664) 480,609K: Foreground 301,723K: com.sam.car.settings (pid 3164 / activities) ... 1,178,460K: Visible 1,022,509K: com.sam.carspeech (pid 3186) ... 776,717K: Perceptible 164,267K: com.sam.xpime (pid 6680) 8,965K: com.sam.car.ai (pid 3773) ... 85,791K: B Services 35,394K: com.sam.cardiagnosis (pid 6306) ... 177,923K: Cached 28,034K: com.sam.appstore (pid 3227) ... Total PSS by category: 1,876,492K: Native 790,289K: Dalvik 670,243K: .apk mmap 666,164K: GL mtrack 590,036K: .so mmap 568,452K: Unknown 133,191K: Dalvik Other 126,129K: Other mmap 90,951K: .art mmap 89,693K: .jar mmap 54,220K: Stack 37,382K: .dex mmap 20,804K: Ashmem 15,118K: .oat mmap 10,031K: .ttf mmap 6,072K: Other dev 0K: Cursor 0K: Gfx dev 0K: EGL mtrack 0K: Other mtrack Total RAM: 11,194,640K (status normal) Free RAM: 2,568,179K ( 177,923K cached pss + 1,919,984K cached kernel + 470,272K free) DMA-BUF: 1,063,552K ( 321,048K mapped + 742,504K unmapped) DMA-BUF Heaps: 716,532K DMA-BUF Heaps pool: 0K GPU: 1,027,356K ( 361,192K dmabuf + 666,164K private) Used RAM: 9,429,898K (6,765,282K used pss + 2,664,616K kernel) Lost RAM: 467,185K ZRAM: 272,432K physical used for 1,584,128K in swap (6,157,048K total swap) Tuning: 256 (large 512), oom 322,560K, restore limit 107,520K (high-end-gfx)
注:"Total PSS by OOM adjustment" 下的 Persistent 类型的app,被kill掉后会自动重启。
1. 相关名词介绍
RSS(Resident Set Size):
这是进程当前在物理内存中占用的空间,包括进程本身和所有链接库。RSS是评估进程内存占用的一个重要指标,它直接反映了进程当前实际使用的物理内存量。但由于包含了共享库,用处不大。
PSS(Proportional Set Size):
与RSS不同,PSS考虑了共享内存的情况,它计算了每个进程对共享内存的贡献,并通过等比例来分配共享内存的使用量。PSS更适合用来比较不同进程的内存使用情况,因为它避免了重复计算共享内存的问题。
此数据非常有用,因为系统中所有进程的PSS都相加的话,就刚好反映了系统中的总共被占用的内存量。而当一个进程被销毁之后, 其占用的共享库那部分比例的PSS,将会再次按比例分配给余下使用该库的进程。
USS(Unique Set Size):
这是进程独占的物理内存量,不考虑共享库占用的内存。USS可以用来计算某个进程真正独占的内存资源。
USS是非常有用的数据,因为它反映了运行一个特定进程真实的边际成本(增量成本)。当一个进程被销毁后,USS是真实返回给系统的内存。当进程中存在一个可疑的内存泄露时,USS是最佳观察数据。
VSS(Virtual Set Size)
虚拟内存占用,包含共享库,以及分配但未使用内存。其大小还包括可能不在RAM中的内存(比如虽然malloc分配了空间,但尚未写入)。VSS 很少被用于判断一个进程的真实内存使用量,用处不大。
优秀BK:
dumpsys meminfo 的原理和应用: https://www.cnblogs.com/Linux-tech/p/12961295.html
posted on 2024-10-16 21:15 Hello-World3 阅读(234) 评论(0) 收藏 举报
浙公网安备 33010602011771号