numanoid
Dauer-User
- 474
Ich habe mal gehört (oder gelesen), dass man der Speicheranzeige nicht 100% glauben darf, sprich Apps/Spiele können mehr Speicher allokiert haben, als angezeigt wird.
Das läge wohl daran, dass Apps/Spiele wohl auf Java-Ebene einen zugesicherten Heap allokiert bekommen, denn sie im Laufe ihres Lebens aufbrauchen können. Wenn er aufgebraucht ist, und die App/Spiel braucht mehr, dann gibt es eine Exception, und falls die nicht abgefangen wird, schmierrt den App/Spiel auch direkt ab. Da aber Apps/Spiele teilweise viel mehr Speicher brauchen, als was Android über den Java-Heap maximal erlaubt, holen sich diese über eine Native-Schnittstelle z.B. via eingebundenen C/C++-Libraries/Code direct via (m)alloc Speicher, und das fast unbegrenzt (soviel halt wirklich frei ist).
D.h, ein Spiel wie Harthstone zeigt vielleicht 130MB Java-Speicher an, aber insgesamt viel mehr echten RAM. Vielleicht weiss das jemand genauer.
Das läge wohl daran, dass Apps/Spiele wohl auf Java-Ebene einen zugesicherten Heap allokiert bekommen, denn sie im Laufe ihres Lebens aufbrauchen können. Wenn er aufgebraucht ist, und die App/Spiel braucht mehr, dann gibt es eine Exception, und falls die nicht abgefangen wird, schmierrt den App/Spiel auch direkt ab. Da aber Apps/Spiele teilweise viel mehr Speicher brauchen, als was Android über den Java-Heap maximal erlaubt, holen sich diese über eine Native-Schnittstelle z.B. via eingebundenen C/C++-Libraries/Code direct via (m)alloc Speicher, und das fast unbegrenzt (soviel halt wirklich frei ist).
D.h, ein Spiel wie Harthstone zeigt vielleicht 130MB Java-Speicher an, aber insgesamt viel mehr echten RAM. Vielleicht weiss das jemand genauer.