¿Qué es "RAM perdida" en dumpsys meminfo?

8

A continuación se muestra una muestra dumpsyscon RAM perdida. ¿Cuál es su significado en KitKat? ¿Cómo se puede reclamar y usar?

Total PSS by OOM adjustment:
    31841 kB: Native
               13173 kB: zygote (pid 23001)
                4372 kB: surfaceflinger (pid 23000)
                3721 kB: mediaserver (pid 126)
                3317 kB: glgps (pid 22993)
                1656 kB: drmserver (pid 125)
                 995 kB: wpa_supplicant (pid 23148)
                 786 kB: netd (pid 121)
                 518 kB: sdcard (pid 132)
                 475 kB: vold (pid 119)
                 458 kB: keystore (pid 128)
                 448 kB: /init (pid 1)
                 412 kB: adbd (pid 134)
                 254 kB: ueventd (pid 108)
                 238 kB: dhcpcd (pid 10617)
                 229 kB: tf_daemon (pid 130)
                 200 kB: installd (pid 127)
                 185 kB: dumpsys (pid 14207)
                 144 kB: healthd (pid 117)
                 139 kB: debuggerd (pid 122)
                 121 kB: servicemanager (pid 118)
    48217 kB: System
               48217 kB: system (pid 23064)
    49095 kB: Persistent
               34012 kB: com.android.systemui (pid 23163 / activities)
                7719 kB: com.android.phone (pid 23357)
                4676 kB: com.android.nfc (pid 23371)
                2688 kB: com.nuance.xt9.input (pid 23344)
    24945 kB: Foreground
               24945 kB: com.android.settings (pid 24811 / activities)
    17136 kB: Visible
               14026 kB: com.google.process.location (pid 23472)
                3110 kB: com.android.defcontainer (pid 13976)
     6911 kB: Perceptible
                6911 kB: com.google.android.inputmethod.latin (pid 23298)
    14277 kB: A Services
               14277 kB: com.google.process.gapps (pid 23513)
    26422 kB: Home
               26422 kB: com.android.launcher (pid 23395 / activities)
    21798 kB: B Services
               16242 kB: com.google.android.apps.currents (pid 23767)
                5556 kB: android.process.media (pid 7738)
   145869 kB: Cached
               41588 kB: com.google.android.apps.plus (pid 24689)
               21417 kB: com.google.android.deskclock (pid 23966 / activities)
               14463 kB: com.google.android.apps.docs (pid 8644)
               14303 kB: com.google.android.gm (pid 9115)
               11014 kB: com.google.android.music:main (pid 7716)
               10688 kB: com.google.android.apps.magazines (pid 13892)
               10240 kB: com.google.android.gms (pid 23338)
                9882 kB: com.google.android.youtube (pid 5131)
                8807 kB: com.google.android.apps.walletnfcrel (pid 8937)
                3467 kB: com.google.android.setupwizard (pid 8922)

Total RAM: 998096 kB
 Free RAM: 574945 kB (145869 cached pss + 393200 cached + 35876 free)
 Used RAM: 392334 kB (240642 used pss + 107196 buffers + 3856 shmem + 40640 slab)
 Lost RAM: 30817 kB
   Tuning: 64 (large 384), oom 122880 kB, restore limit 40960 kB (high-end-gfx)
stat
fuente
Cálculo corto (contestar el título de su pregunta): "Lost RAM" = total - used - free. Hm, fugas de memoria? Reclamar por reinicio? 30 MB puede que no sea mucho (en comparación con el total de 1 GB), pero es 3% y no es divertido ...
Izzy
Tengo más de 300 MB de RAM perdida en cualquier momento en mi dispositivo. También me gustaría saber por qué está perdido y si hay alguna forma de recuperarlo.
Wang Dingwei
stackoverflow.com/questions/21881122/… puede ser esto puede ayudar
samnaction

Respuestas:

7

RAM perdida es TotalRAM - FreeRAM - UsedRAM. Eso significa que es la diferencia entre el uso de RAM que Android puede calcular y la RAM disponible real.

A veces, incluso puede ser negativo, debido a problemas en los que la RAM compartida entre procesos se cuenta más de una vez. A los conductores se les culpa principalmente por eso. Hay una memtrackHAL para que informen su contabilidad de memoria a Android, pero algunos de los controladores simplemente no lo hacen correctamente.

Si ve un gran valor de "RAM perdida" (que no es el caso en la pregunta original, pero es de lo que habla Wang), probablemente se deba a un error, desafortunadamente no se puede recuperar. Puede buscar en /d/ionel directorio virtual de su dispositivo (probablemente se necesita un dispositivo rooteado) y examinar los informes en él, buscando asignaciones "huérfanas".

Mikhail Naganov
fuente