Uso de RAM del sistema Android

He estado tratando de averiguar cómo Android/CyanogenMod administra la RAM internamente y qué puedo recortar exactamente.

Estoy ejecutando CyanogenMod 10.1-M2 en este momento, pero el uso de la memoria se ha mantenido bastante constante durante las actualizaciones desde que instalé el CM 10 hace aproximadamente medio año.

Aquí están mis preguntas:

  • ¿Qué podría estar haciendo Trebuchet consumiendo 100 millones de RAM por sí solo?

    De hecho, systemuitambién está consumiendo más de 70M de RAM. Un cálculo aproximado de los requisitos de RAM de video ( 4 colors x 1200 x 720~ 3-4 MB) no se acerca a los cientos de megabytes, incluso si tiene, digamos, 10 capas en su iniciador y la interfaz de usuario del sistema, cada una ocupando la pantalla completa.

  • system_serverestá tomando ~150 millones, ¿es eso normal?

    Supongo que si se tienen en cuenta los servicios que muestra dumpsys meminfotodo suma, pero quería comprobarlo.

Para obtener información, dumpsys meminfoprogramas en ejecución:

Total PSS by OOM adjustment:
   118491 kB: System
              118491 kB: system (pid 406)
    79619 kB: Persistent
               50892 kB: com.android.systemui (pid 19167)
               23670 kB: com.android.phone (pid 688)
                5057 kB: com.android.nfc (pid 697)
   112547 kB: Foreground
              112547 kB: com.cyanogenmod.trebuchet (pid 25585)
    97764 kB: Visible
               62079 kB: android.process.acore (pid 23677)
               13137 kB: com.google.process.gapps (pid 886)
                9092 kB: com.google.android.gsf.login (pid 6452)
                8151 kB: com.google.process.location (pid 855)
                2753 kB: com.android.nfc:handover (pid 788)
                2552 kB: com.android.smspush (pid 811)
     8094 kB: Perceptible
                5558 kB: com.android.inputmethod.latin (pid 9662)
                2536 kB: com.android.location.fused (pid 3493)
    67783 kB: A Services
               26124 kB: com.facebook.katana (pid 27504)
               16481 kB: com.facebook.orca (pid 26218)
               12152 kB: com.google.android.apps.maps:GoogleLocationService (pid 24846)
                7467 kB: android.process.media (pid 24905)
                5559 kB: net.nurik.roman.dashclock (pid 24926)
    28482 kB: B Services
               10988 kB: com.android.vending (pid 26889)
                7018 kB: com.google.android.apps.maps (pid 18348)
                5104 kB: com.dropbox.android (pid 25070)
                2710 kB: com.bel.android.dspmanager (pid 26346)
                2662 kB: com.cyanogenmod.updater.updater.service.UpdateCheckService (pid 25156)
    54121 kB: Background
               14159 kB: com.google.android.apps.plus (pid 27352)
               12993 kB: com.facebook.katana:providers (pid 27538)
                8600 kB: com.google.android.googlequicksearchbox (pid 27427)
                4848 kB: com.evernote.skitch (pid 27408)
                4101 kB: com.google.android.apps.maps:LocationFriendService (pid 27488)
                3833 kB: com.google.android.gms (pid 27474)
                2890 kB: com.google.android.partnersetup (pid 27445)
                2697 kB: com.android.defcontainer (pid 27379)

topmuestra:

  PID PR CPU% S  #THR     VSS     RSS PCY UID      Name
  406  1   0% S   101 689020K 138244K  fg system   system_server
25585  1   0% S    23 581124K 136528K  fg u0_a40   com.cyanogenmod.trebuchet
19167  0   0% S    20 507824K  71216K  fg u0_a36   com.android.systemui
23677  0   0% S    33 526580K  56076K  bg u0_a1    android.process.acore
27504  1   0% S    29 505836K  43828K  bg u0_a112  com.facebook.katana
  688  0   0% S    44 530180K  33860K  fg radio    com.android.phone
26218  1   0% S    24 491392K  31792K  bg u0_a92   com.facebook.orca
  128  0   0% S    10  69020K  27900K  fg system   /system/bin/surfaceflinger
27754  1   0% S    15 481612K  26892K  bg u0_a127  com.google.android.apps.maps:LocationFriendService
26889  0   0% S    29 495588K  26356K  bg u0_a55   com.android.vending
Si tiene muchos íconos y widgets ejecutándose en su pantalla de inicio con un fondo de pantalla en vivo, entonces trebucheusar más de 100 mb de RAM suena razonable. system_uitambién almacena en caché los mapas de bits de la pantalla para reducir los retrasos al desplazarse y cambiar de aplicación. Android recuperará automáticamente su memoria si una aplicación en primer plano la necesita, por lo que no debería ser un problema de preocupación. En cuanto a system_server, no lo tengo y creo que está consumiendo anormalmente tu RAM
Además, ¿puedo saber el modelo de su teléfono? (Xperia Z, HTC One, Nexus, etc.)
@forums: El teléfono es un Galaxy Nexus. Y system_serveres un componente central para Android que ejecuta servicios, por eso no me sorprende que use más de 100 MB de RAM dado que Facebook toma 40M por sí solo. Trebuchet es lo que realmente me desconcierta, incluso con el almacenamiento en caché y los widgets. La razón por la que estoy haciendo esta pregunta, por cierto, es que mi teléfono se vuelve muy lento después de un tiempo, con Trebuchet/System UI siendo eliminado por OOM cada vez que abro una aplicación.
@Izzy: CM 10.1-M3 arregló muchas cosas, aunque no estoy seguro de qué sucedió. Y eliminar la aplicación principal de Facebook hizo maravillas, descubrí que estaba registrada en más o menos TODAS las intenciones del sistema, y ​​todo el teléfono se volvió loco cada vez que habilité la conexión de datos. No mantengo los datos habilitados todo el tiempo y, cada vez que lo encendía, supongo que Facebook tenía que descargar y procesar toneladas de cosas. Aparte de eso, no tengo mucho que decir.
¡Decir ah! No me pregunto sobre eso. Una de las razones por las que evito FB por completo: junto a su "privacidad" está su sed de datos. Ya que tiene su problema resuelto: ¿le importaría establecer una respuesta y aceptarla?
@Izzy: ¡Claro! Solo haciendo eso.

Respuestas (1)

Estas cosas ayudaron mucho:

  • Mirando qué aplicaciones consumieron más energía. El rendimiento mejoró mucho después de desinstalar Facebook y algunas otras aplicaciones que había descargado con el tiempo.
  • Actualizar a CyanogenMod 10.1-M3 ayudó. Repararon una fuga de memoria desagradable , que probablemente explicaba parte de mis problemas.
  • Un poco antes de los primeros candidatos 10.1-RC, el equipo de CM modificó la configuración de la memoria que había cambiado sin previo aviso en uno de los lanzamientos.
  • Si se está quedando sin almacenamiento, es posible que desee ejecutar fstrim /data en un shell raíz. Parece ser una limitación técnica de los SSD cuando tienen poco espacio.