Alles zum RAM-Management unter Android

  • 642 Antworten
  • Neuester Beitrag
Diskutiere Alles zum RAM-Management unter Android im Android Allgemein im Bereich Betriebssysteme & Apps.
olafgeibig

olafgeibig

Ambitioniertes Mitglied
Also nach nun ca. 1.5 Wochen Benutzung bin ich prinzipiell ganz zufrieden mit dem Ding. ABER meiner Meinung nach hat es zu wenig Speicher.

Code:
cat /proc/meminfo

MemTotal:        96104 kB
MemFree:          2320 kB
Buffers:           648 kB
Cached:          12968 kB
SwapCached:          0 kB
Active:          76388 kB
Inactive:         3880 kB
SwapTotal:           0 kB
SwapFree:            0 kB
Dirty:              64 kB
Writeback:           0 kB
AnonPages:       66684 kB
Mapped:          10380 kB
Slab:             5560 kB
SReclaimable:     1036 kB
SUnreclaim:       4524 kB
PageTables:       4336 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
WritebackTmp:        0 kB
CommitLimit:     48052 kB
Committed_AS:  1245968 kB
VmallocTotal:   409600 kB
VmallocUsed:     68844 kB
VmallocChunk:   308220 kB
Wie man sieht haben wir ungefähr 100 MB und die sind, wie eigentlich immer unter Linux, fast voll. Kein Swap. Wenn ich dann die RSS memory der laufenden Prozesse zusammenzähle komme ich locker auf 160 MB... Wie geht das eigentlich?

Anyway, ich bemerke knappen Speicher dann, wenn ich mehere Apps laufen habe und ich dann zu einer anderen App zurückswitchen möchte, dann switcht er nicht sondern startet sie neu - vermutlich weil sie zuvor aus dem Speicher gekickt wurde. Passiert mir besonders oft wenn ich twidroid benutze, auf Links klicke, dort ein wenig rumbrowse und dann zurück zum twidroid gehe, dann muss er twidroid neu laden. Bei einigen Apps ist das richtig nervig. Z.B. speichert Opera Mini, im Gegensatz zum eingebauten Browser, seinen State nicht und wenn er gekickt wurde dann switche ich auf Mini zurück dann kommt die Seite mit der ich ihn hinterlassen habe nicht wieder, sondern die Startseite. Bei wenig laufenden Apps ist das Switchen kein Problem und geht auch mit Opera Mini.

Nun mal ehrlich, warum hat Samsung uns nur vermutlich 128 MB spendiert. Wo ist das Problem bei heutigen Preisen mal einfach auf Halde 512 MB zu verbauen? Ich verstehe es nicht.
 
M

m4nu

Neues Mitglied
Der Akku würde dann wahrscheinlich noch früher schlapp machen weil viele denken "hey ich hab' ja genug RAM und lass mal alles nebeneinander laufen" :D
 
olafgeibig

olafgeibig

Ambitioniertes Mitglied
Also IMHO sind die Apps von Ausnahmen abgesehen gar nicht das Problem. Laut cat /proc/loadavg passiert da gar nicht soviel auf meinem phone. Ich schicke das Telefon immer vorm zu Bett gehen in den Flight-Mode. Wenn ich den am Morgen wieder abschalte hat das Telefon KEINEN einzigen Prozentpunkt Batterie verloren.
 
O

ogger

Neues Mitglied
hi,

wie komme ich eigentlich an die konsole ran?
 
Thyrion

Thyrion

Ehrenmitglied
Das Problem mit viel RAM ist, dass dies auch stark am Akku ziehen kann, da der Speicherinhalt (anders als bei Flash/ROM/(E)EPROM) regelmäßig aufgefrischt werden muss und eine nicht unerhebliche Last für das System darstellt/darstellen kann. Dazu kommt noch Raumknappheit, Wärmeentwicklung usw (was sich natürlich alles lösen läßt).

Für die Konsole kannst Du Dir z.B. Better Terminal Emulator installieren (hat aber eine kleine Macke mit der virtuellen Tastatur und der Enter-Taste)
 
Zuletzt bearbeitet:
C

cumec

Fortgeschrittenes Mitglied
Das Problem hat ja leider nicht nur das Galaxy sonder nauch das magic und das G1. Deren 192mb beziehen den baseband memory mit ein. effektiv haben die auch nur 128mb wie das galaxy. Halt nur werbewirksamer ausgedrückt...
Aber ich gebe dir recht, warum nich einfach 256 etc. einbauen...
Aber die Frage ist ob das wirklich viel mehr performance bringt.
 
olafgeibig

olafgeibig

Ambitioniertes Mitglied
Als Konsole nutze ich ConnectBot, da der auch ein ssh client ist. Wenn man sich mit local verbindet ist er dann eine normale Konsole. http://www.cyrket.com/package/org.connectbot

Besser ist aber das galaxy im Debug-Mode per USB an den Computer anschliessen und mit der adb (Android Debugging Bridge) vom Computer aus eine remote shell auf dem galaxy aufzumachen - tippt sich besser ;)

adb wurde in einem anderen Thread behandelt: https://www.android-hilfe.de/forum/samsung-galaxy-i7500.21/adb-jetzt-auch-auf-dem-galaxy.4021.html
 
Thyrion

Thyrion

Ehrenmitglied
Gibt's eigentlich einen von aussen (WLAN) erreichbaren Telnet/SSH-Dienst (ohne root-Rechte zu haben)? Von ADB abgesehen meine ich.

Für FTP habe ich ja was gefunden (wenn auch noch nicht ausprobiert)...
 
O

ogger

Neues Mitglied
Thyrion schrieb:
Das Problem mit viel RAM ist, dass dies auch stark am Akku ziehen kann, da der Speicherinhalt (anders als bei Flash/ROM/(E)EPROM) regelmäßig aufgefrischt werden muss und eine nicht unerhebliche Last für das System darstellt/darstellen kann. Dazu kommt noch Raumknappheit, Wärmeentwicklung usw (was sich natürlich alles lösen läßt).

Für die Konsole kannst Du Dir z.B. Better Terminal Emulator installieren (hat aber eine kleine Macke mit der virtuellen Tastatur und der Enter-Taste)
DANKE :) .. Terminal ... hätte ich auch selber drauf kommen können.
 
D

doubleM

Neues Mitglied
Hiho,

kurze Frage: hab den neuen 14er leak laufen und freue mich jedesmal über 100MB frei am Anfang. Doch leider ist das nach einem Tag schon wieder vorbei. Dann sind es nämlich nur noch etwa 65, und das obwohl ich den Apollo task Killer benutze und der keine tasks mehr anzeigt. Hat jemand von euch eine Idee?
 
M

m106

Erfahrenes Mitglied
Das sind die Hintergrunddienste, denke ich. Schau mal unter Einstellungen->Anwendungen->Ausgeführte Dienste nach.

Aber über 65 MB würde ich mir überhaupt keine Sorgen. Das ist sehr gut. Mit dem 1.6er ROM waren 30 MB eher üblich :)

Android hat eine tolle RAM Verwaltung, es schafft sich immer etwas frei, wenn was benötigt wird.
 
A

AndroidFennec

Neues Mitglied
Wenn Du Handy ausschaltest und neu hochfährst, kriegst Du ein paar freie MB dazu :)

Gelegentlich ist es sinnvoll, einen Neustart zu machen. Ich hatte z.B. über Eclipse meine Apps viel getestet- und der Ram ging beim G1 trotz Verwendung des Task Killers irgendwann auf 25 MB (normalerweise ist es bei etwa 33 MB) herunter. Nach dem Reboot hatte ich wieder 42, was sich aber nicht lange gehalten hat.
 
D

Docdoc

Ambitioniertes Mitglied
doubleM schrieb:
Hiho,

kurze Frage: hab den neuen 14er leak laufen und freue mich jedesmal über 100MB frei am Anfang. Doch leider ist das nach einem Tag schon wieder vorbei. Dann sind es nämlich nur noch etwa 65, und das obwohl ich den Apollo task Killer benutze und der keine tasks mehr anzeigt. Hat jemand von euch eine Idee?
Also 65mb Ram sind wirklich genug und du wirst fast nie ein Problem damit haben.Du kannst aber folgendes machen wenn du mehr Ram haben möchtest,
Das neue Rom LCR 1.5 flashen,du wirst mehr freien Ram bekommen,das System wird schneller und die Akkulaufzeit verbessert sich um ca 30-40%.
Oder du deunstalliert den Apollo task killer weil das Rom 1.4 schon ein Task killer hat,füge den Es Task Manager als Widget (nicht als Verknüfung) ein,das Widget zeigt dir immer wieviel Ram noch frei ist,und es reicht immer das widget einmal zu berühren,dann schließt der Es task killer alle laufenden Programme(ignorierlist kann man auch erstellen).
Ich habe meistens zwischen 80-105 MB Ram frei.
 
P

Poussin

Neues Mitglied
Hallo,

Bei meinem Samsung Galaxy ist chronisch zu wenig Arbeitsspeicher frei (meist so ca. 32 der verfügbaren 96 MB), wobei ich mich schon von so schönen Dingen wie den BeatifulWidgets und dem JuiceDefender getrennt habe.

Ich benutze Galaxo 1.6.3.1. Hier ein Teil der Ausgabe von ps:

Code:
123 1000      166m S    system_server                                        
  154 1001      119m S    com.android.phone                                    
  156 10001     130m S    android.process.acore                                
  366 10032     105m S    com.geekyouup.android.widgets.battery                
  507 10001     111m S    com.android.inputmethod.latin                        
  862 root         0 DW   [audmgr_rpc]
 2947 10008     112m S    com.google.process.gapps                             
 3421 10047    99080 S    com.androidapps.widget.weather2                      
 3442 10045     108m S    com.eolwral.osmonitor                                
 3457 root      1400 S    /system/bin/bash - 
 3461 1000      101m S    com.android.settings
Aus dem bugreport noch die Virtual memory stats:
Code:
 ------ VIRTUAL MEMORY STATS ------
nr_free_pages 621
nr_inactive_anon 7042
nr_active_anon 6175
nr_inactive_file 3419
nr_active_file 3112
nr_unevictable 110
nr_mlock 0
nr_anon_pages 13187
nr_mapped 3927
nr_file_pages 6670
nr_dirty 33
nr_writeback 0
nr_slab_reclaimable 564
nr_slab_unreclaimable 923
nr_page_table_pages 863
nr_unstable 0
nr_bounce 0
nr_vmscan_write 44
nr_writeback_temp 0
pgpgin 212489
pgpgout 88912
pswpin 0
pswpout 0
pgalloc_dma 360892
pgalloc_normal 0
pgalloc_movable 0
pgfree 361550
pgactivate 71628
pgdeactivate 75197
pgfault 1002309
pgmajfault 4599
pgrefill_dma 73940
pgrefill_normal 0
pgrefill_movable 0
pgsteal_dma 81621
pgsteal_normal 0
pgsteal_movable 0
pgscan_kswapd_dma 94974
pgscan_kswapd_normal 0
pgscan_kswapd_movable 0
pgscan_direct_dma 26980
pgscan_direct_normal 0
pgscan_direct_movable 0
pginodesteal 0
slabs_scanned 44544
kswapd_steal 63864
kswapd_inodesteal 0
pageoutrun 1591
allocstall 363
pgrotated 32
unevictable_pgs_culled 110
unevictable_pgs_scanned 0
unevictable_pgs_rescued 0
unevictable_pgs_mlocked 0
unevictable_pgs_munlocked 0
unevictable_pgs_cleared 0
unevictable_pgs_stranded 0
unevictable_pgs_mlockfreed 0
sowie die Memory Info
Code:
------ MEMORY INFO ------
MemTotal:          94356 kB
MemFree:            3284 kB
Buffers:             828 kB
Cached:            25184 kB
SwapCached:            0 kB
Active:            36908 kB
Inactive:          41352 kB
Active(anon):      24672 kB
Inactive(anon):    28168 kB
Active(file):      12236 kB
Inactive(file):    13184 kB
Unevictable:         440 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:               132 kB
Writeback:             0 kB
AnonPages:         52748 kB
Mapped:            15708 kB
Slab:               5948 kB
SReclaimable:       2256 kB
SUnreclaim:         3692 kB
PageTables:         3452 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:       47176 kB
Committed_AS:     994704 kB
VmallocTotal:     409600 kB
VmallocUsed:       65760 kB
VmallocChunk:     259068 kB
Und, weil's so schön ist, noch die meminfo-ausgabe:
Code:
DUMP OF SERVICE meminfo:
Applications Memory Usage (kB):
Uptime: 2037603 Realtime: 3312183

** MEMINFO in pid 156 [android.process.acore] **
                    native   dalvik    other    total
            size:    12220     4935      N/A    17155
       allocated:     9856     4017      N/A    13873
            free:     1495      918      N/A     2413
           (Pss):     5679     3662     5174    14515
  (shared dirty):      960     4052      700     5712
    (priv dirty):     5556     3028     3812    12396
 
 Objects
           Views:      500        ViewRoots:        2
     AppContexts:       89       Activities:        6
          Assets:       14    AssetManagers:       14
   Local Binders:       30    Proxy Binders:       33
Death Recipients:        2
 OpenSSL Sockets:        0
 
 SQL
            heap:      205          dbFiles:        0
       numPagers:        3   inactivePageKB:        0
    activePageKB:        0
 
 Asset Allocations
    zip:/data/app/com.aac.cachemate.zip:/resources.arsc: 8K

** MEMINFO in pid 3001 [com.google.android.apps.uploader] **
                    native   dalvik    other    total
            size:     2540     2883      N/A     5423
       allocated:     2533     2205      N/A     4738
            free:        6      678      N/A      684
           (Pss):      668     1191     1451     3310
  (shared dirty):     1256     4464     1008     6728
    (priv dirty):      468      368      424     1260
 
 Objects
           Views:        0        ViewRoots:        0
     AppContexts:        1       Activities:        0
          Assets:        2    AssetManagers:        2
   Local Binders:        3    Proxy Binders:        5
Death Recipients:        0
 OpenSSL Sockets:        0
 
 SQL
            heap:       13          dbFiles:        0
       numPagers:        1   inactivePageKB:        2
    activePageKB:        0

** MEMINFO in pid 154 [com.android.phone] **
                    native   dalvik    other    total
            size:     4932     3783      N/A     8715
       allocated:     4577     2859      N/A     7436
            free:      278      924      N/A     1202
           (Pss):     2622     2579     2940     8141
  (shared dirty):     1064     4220      672     5956
    (priv dirty):     2480     2032     1344     5856
 
 Objects
           Views:      114        ViewRoots:        1
     AppContexts:       10       Activities:        1
          Assets:        4    AssetManagers:        4
   Local Binders:       31    Proxy Binders:       24
Death Recipients:        2
 OpenSSL Sockets:        0
 
 SQL
            heap:      132          dbFiles:        0
       numPagers:        2   inactivePageKB:        0
    activePageKB:        0

** MEMINFO in pid 2947 [com.google.process.gapps] **
                    native   dalvik    other    total
            size:     3172     3463      N/A     6635
       allocated:     3081     2436      N/A     5517
            free:       26     1027      N/A     1053
           (Pss):     1228     3266     3330     7824
  (shared dirty):     1104     3972      756     5832
    (priv dirty):     1068     1804      836     3708
 
 Objects
           Views:        0        ViewRoots:        0
     AppContexts:        7       Activities:        0
          Assets:        6    AssetManagers:        6
   Local Binders:       22    Proxy Binders:       16
Death Recipients:        1
 OpenSSL Sockets:        1
 
 SQL
            heap:      247          dbFiles:        0
       numPagers:        3   inactivePageKB:      135
    activePageKB:        0

** MEMINFO in pid 123 [system] **
                    native   dalvik    other    total
            size:     7956     7239      N/A    15195
       allocated:     6232     5904      N/A    12136
            free:      395     1335      N/A     1730
           (Pss):     3280     6724     6937    16941
  (shared dirty):      880     3888      552     5320
    (priv dirty):     3168     6148     3192    12508
 
 Objects
           Views:      231        ViewRoots:        4
     AppContexts:       31       Activities:        0
          Assets:       21    AssetManagers:       21
   Local Binders:       71    Proxy Binders:      151
Death Recipients:       30
 OpenSSL Sockets:        1
 
 SQL
            heap:      475          dbFiles:        0
       numPagers:        3   inactivePageKB:      363
    activePageKB:        0

** MEMINFO in pid 366 [com.geekyouup.android.widgets.battery] **
                    native   dalvik    other    total
            size:     3144     3271      N/A     6415
       allocated:     2758     2230      N/A     4988
            free:       73     1041      N/A     1114
           (Pss):      715     1307     1664     3686
  (shared dirty):     1148     4352      864     6364
    (priv dirty):      552      720      864     2136
 
 Objects
           Views:        8        ViewRoots:        0
     AppContexts:        3       Activities:        1
          Assets:        2    AssetManagers:        2
   Local Binders:        6    Proxy Binders:       15
Death Recipients:        1
 OpenSSL Sockets:        0
 
 SQL
            heap:        0          dbFiles:        0
       numPagers:        0   inactivePageKB:        0
    activePageKB:        0

** MEMINFO in pid 507 [com.android.inputmethod.latin] **
                    native   dalvik    other    total
            size:     3284     3015      N/A     6299
       allocated:     2554     2261      N/A     4815
            free:      209      754      N/A      963
           (Pss):      864     1345     1538     3747
  (shared dirty):     1116     4340      808     6264
    (priv dirty):      708      768      640     2116
 
 Objects
           Views:       23        ViewRoots:        1
     AppContexts:        2       Activities:        0
          Assets:        3    AssetManagers:        3
   Local Binders:       12    Proxy Binders:       19
Death Recipients:        1
 OpenSSL Sockets:        0
 
 SQL
            heap:        0          dbFiles:        0
       numPagers:        0   inactivePageKB:        0
    activePageKB:        0
Ist das so in Ordnung? Mir erscheint mit mehreren MB der Speicherverbrauch der Tastatur, des Schnellsuchfeldes (so bezeichnet der OSMonitor android.process.acore), des Battery-Widgets sowie der gapps recht hoch. Muss man tatsächlich ein völlig spartanisches System haben (ohne jegliche widgets etc.), wenn man auch mal den browser benutzen möchte, ohne dass der speicher komplett aufgebraucht wird?

Gruß,
Christopher.
 
Zuletzt bearbeitet:
mischel

mischel

Neues Mitglied
Hi,

da Android ja auf Linux basiert, wird der Linux-Grundsatz, daß all zu viel freier Speicher sinnlose Verschwendung ist, auch für Android gelten. So wird (zumindest bei Linux) der vorhandene Speicher, der nicht für Anwendungen benötigt wird, bis zu einem freibleibenden Rest für's cachen benutzt. Erst wenn eine Anwendung oder die Speicherverwaltung des Betriebssystems wieder Speicher anfordert, wird der Cache-Bereich verkleinert und der dadurch frei gewordene Speicher der Anwendung zugeteilt.

Ich würde mir deshalb an Deiner Stelle keine Sorgen machen.

Servus
der Michael
 
T

the_alien

Experte
Lies mal den Dev Blog Eintrag hier. Android gibt erst Speicher frei wenn er benötigt wird. Ansonsten bleibt alles drin. Von daher: Ja es ist normal und absolut so gewollt.
 
Dave85

Dave85

Neues Mitglied
hab mr 1.9 mit greednmod drauf... lief alles tadellos... doch iwie von heute auf morgen... ruckelt alles!!! und hänt immer für 1-2sec... und dies meldung das der widget launcher neu gestartet werden muss kommt!!!

hat jmd das selbe problem?

leigts vlt daran das taskmanager nur 50mb freiern speciher anzeigt?
 
cybot

cybot

Stammgast
Hast du irgendwelche Widgets, die der Launcher nicht ab kann?
War bei mir der Fall, als ich SetCPU auf alle 5 Sek. aktualisieren hatte.
Troid
 
L

Lür

Erfahrenes Mitglied
Oder eventuell hast du Fancy Widget, das ist bei mir auch immer im Task Manager.
 
F

foodiwoodi

Fortgeschrittenes Mitglied
hallo

in allen test und artikeln hab ich gelesen das das gt540 256mb ram hat.
jetzt hab ich es und hab mir android system info drauf gemacht und das
sagt mir: total ram 169 mb!
wie kann das sein? verarschen die uns nur bei den tests und artikeln?

gruß