¿Cuál es el concepto detrás de "Lost RAM" que aparece en el meminfo de Dumpsys?
Como he mencionado en la pregunta, Lost RAM aparece en Dumpsys meminfo
.
- ¿Cuál es el concepto detrás de "Lost RAM" que aparece en el meminfo de Dumpsys?
- ¿Cuál es su significado en Kitkat. ¿Cómo se puede recuperar y utilizar?
Muestra dumpsys mostrando "RAM perdida".
- Almacenamiento de datos en / externalsdcard / Android / datos / <app package name> en KITKAT
- Transparente status-bar / system-ui en 4.4 Kit Kat
- Android parse.com que guarda error de la instalación. Objeto no encontrado para la actualización
- Ejecutar el comando shell desde android
- El constructor de vista personalizada en Android 4.4 se bloquea en Kotlin, ¿cómo arreglarlo?
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)
- Android Studio 3.0: canary 6: android.content.res.Resources $ NotFoundException dentro de la actividad de lanzamiento
- Cómo persistir el permiso en android API 19 (KitKat)?
- Barra de navegación translúcida (Android 4.4) - Mostrar contenido debajo
- ShouldInterceptRequest en Android 4.4 KitKat
- ¿Cómo salir completamente de Immersive pantalla completa?
- SSL cambios en android kitkat mantener la conexión de trabajo?
- Problemas de compatibilidad de interfaz de usuario entre diferentes versiones de API
- Navegación incorrecta al guardar contactos en Android
En mi sistema, son causados principalmente por ION (que reemplaza pmem). Si la depuración de iones está habilitada con su kernel, puede calcular su uso de ION con esta secuencia de comandos:
adb shell cat /d/ion/heaps/system|perl -ne 'chomp; if (m/pages in.*pool = (\d+) total/) {$x += $1;} if (m/^\s+total\s+(\d+)$/) {$y += $1} END {printf "use: %d kb, cache: %d kb; total: %d kb", $y/1024, $x/1024, ($x + $y)/1024}'
De hecho, cualquier asignación de página del núcleo realizada y controlada por los controladores no será rastreada por el kernel, contando así para el RAM perdido.
Después de detener el servidor del sistema, utilicé otro script .awk para calcular el RAM perdido (dumpsys meminfo requerirá el servicio meminfo y por lo tanto no funcionará más), y el RAM perdida está muy cerca de la siguiente salida de depuración de ION:
#!/usr/bin/awk BEGIN { types["MemTotal"] = 1; types["Pss"] = 1; types["MemFree"] = 1; types["Cached"] = 1; types["Buffers"] = 1; types["Shmem"] = 1; types["Slab"] = 1; } ## start code-generator "^\\s *#" #echo # for x in Pss MemTotal MemFree Cached Buffers Shmem Slab; do # cat << EOF #/$x: / { # hash["$x"] += \$2; # next #} # #EOF # done ## end code-generator ## start generated code /Pss: / { hash["Pss"] += $2; next } /MemTotal: / { hash["MemTotal"] += $2; next } /MemFree: / { hash["MemFree"] += $2; next } /Cached: / { hash["Cached"] += $2; next } /Buffers: / { hash["Buffers"] += $2; next } /Shmem: / { hash["Shmem"] += $2; next } /Slab: / { hash["Slab"] += $2; next } ## end generated code END { lost = 0; for (type in types) { if (type == "MemTotal") { lost += hash[type]; } else { lost -= hash[type]; } } print "lost: " lost " kB\n"; }
También he comprobado de nuevo después de que la fuerza de una memoria del núcleo de encogimiento con adb shell sh -c 'echo 3 > /proc/sys/vm/drop_caches'
, los resultados siguen siendo muy cerca.
- Recepción de la barra de estado oculta / entrada de un evento de actividad de pantalla completa en un servicio
- No se pudieron determinar las dependencias para todas las tareas con robolectric gradle plugin