Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Dual Core und RAM Limit

Das Thema "Dual Core und RAM Limit" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 15.09.2011, 16:37   #1 (permalink)
Android-Hilfe.de Mitglied

Modell: Motorola Atrix 4G

Registriert seit: 07.12.2010
Beiträge: 170
Abgegebene Danke: 14
Erhielt 32 Danke für 31 Beiträge
Neeldarax eine Nachricht über ICQ schicken
Frage Dual Core und RAM Limit

Hallo zusammen,

ich habe gerad eine was gesehen, was ich mir nicht ganz erklären kann.

Meine APP beansprucht 50% der CPU last vom S2 (dual core handy). Wieso kann macht der zweiter Prozessor nichts? Gibt es da ne Einstellung vom Android? Kann mir jemand dazu was sagen?

Und das zweite ist, wenn ich es schaffe ca. 60MB RAM zu belegen, verursachen bestimmte Aktionen, die im normalen Lauf keine Probleme verursachen, eine Meldung vom System "Beenden erzwingen oder Warten". (da ist mir auch schon ma meine App um die Ohren geflogen)
Da ist bestimmt der GC mit cleanen schuld. Kann man das Limit bzw. den zugeordneten Speicher mit Parameter setzten? (so kenn ich das für Eclipse start)

Ich kann die CPU-Last und den Speicher nicht mit wenig Aufwand reduzieren, bequemer wäre es das Limit des Smartphones auszureizen. Um haltbarkeit des Akkus kümmere ich mich, wenns soweit kommt *g

Danke für jeden, der sich schon ma damit auseinander gesetzt hat und uns einweiht

regards


Wenn die APP einem um die Ohrenfliegt:
Code:
09-15 16:07:30.814: ERROR/ActivityManager(2696): ANR in mein.package (mein.package/mein.package.Maske)
09-15 16:07:30.814: ERROR/ActivityManager(2696): Reason: keyDispatchingTimedOut
09-15 16:07:30.814: ERROR/ActivityManager(2696): Load: 2.85 / 2.14 / 1.56
09-15 16:07:30.814: ERROR/ActivityManager(2696): CPU usage from 19598ms to 0ms ago:
09-15 16:07:30.814: ERROR/ActivityManager(2696):   1.8% 9502/mein.package: 0.5% user + 1.2% kernel / faults: 23 minor
09-15 16:07:30.814: ERROR/ActivityManager(2696):   1% 2696/system_server: 0.3% user + 0.7% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0% 6889/com.sec.android.widgetapp.buddiesnow: 0% user + 0% kernel / faults: 55 minor
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0.1% 514/com.sec.android.app.controlpanel: 0.1% user + 0% kernel / faults: 66 minor
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0.3% 1308/cm3663_light_wq: 0% user + 0.3% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0.2% 2592/adbd: 0% user + 0.2% kernel / faults: 36 minor
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0.1% 2803/com.sec.android.widgetapp.digitalclock: 0.1% user + 0% kernel / faults: 49 minor
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0.1% 2823/com.android.systemui: 0.1% user + 0% kernel / faults: 1 minor
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0% 9/events/0: 0% user + 0% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0.1% 524/kondemand/0: 0% user + 0.1% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0% 10270/wpa_supplicant: 0% user + 0% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0% 336/bdi-default: 0% user + 0% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0% 1267/file-storage: 0% user + 0% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0% 1293/irq/328-mxt224_: 0% user + 0% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0% 1445/mmcqd: 0% user + 0% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0% 2577/drexe: 0% user + 0% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0% 5114/logcat: 0% user + 0% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0% 8479/com.sec.android.app.FileTransferServer: 0% user + 0% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):   0% 10266/dhd_dpc: 0% user + 0% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696): 4.5% TOTAL: 1.8% user + 2.6% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696): CPU usage from 376ms to 889ms later:
09-15 16:07:30.814: ERROR/ActivityManager(2696):   5.7% 2696/system_server: 1.9% user + 3.8% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):     3.8% 2763/InputDispatcher: 0% user + 3.8% kernel
09-15 16:07:30.814: ERROR/ActivityManager(2696):   1.6% 9502/mein.package: 1.6% user + 0% kernel / faults: 1 minor
09-15 16:07:30.814: ERROR/ActivityManager(2696): 1.9% TOTAL: 0% user + 1.9% kernel
Wenn der GC Überstunden schiebt:
Code:
09-15 16:04:42.504: DEBUG/dalvikvm(8541): GC_FOR_MALLOC freed 1613K, 43% free 12007K/20743K, external 38169K/40217K, paused 43ms
09-15 16:04:42.619: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 2014K, 42% free 12033K/20743K, external 38071K/40119K, paused 2ms+3ms
09-15 16:04:42.749: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 694K, 36% free 13338K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:42.779: DEBUG/dalvikvm(8541): GC_FOR_MALLOC freed 2404K, 38% free 12915K/20743K, external 38071K/40119K, paused 23ms
09-15 16:04:42.824: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1697K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+2ms
09-15 16:04:42.854: DEBUG/dalvikvm(8541): GC_FOR_MALLOC freed 2263K, 38% free 12915K/20743K, external 38071K/40119K, paused 21ms
09-15 16:04:42.899: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1697K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+2ms
09-15 16:04:42.949: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+2ms
09-15 16:04:42.994: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+2ms
09-15 16:04:43.044: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+2ms
09-15 16:04:43.084: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+3ms
09-15 16:04:43.134: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:43.184: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+2ms
09-15 16:04:43.234: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+2ms
09-15 16:04:43.284: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:43.334: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:43.384: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+2ms
09-15 16:04:43.434: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+2ms
09-15 16:04:43.484: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+2ms
09-15 16:04:43.524: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+2ms
09-15 16:04:43.574: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+2ms
09-15 16:04:43.624: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+3ms
09-15 16:04:43.669: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:43.709: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:43.754: ERROR/lights(2696): write_int: path /sys/devices/virtual/misc/melfas_touchkey/brightness, value 2
09-15 16:04:43.754: WARN/PowerManagerService(2696): Timer 0x7->0x3|0x0
09-15 16:04:43.754: INFO/PowerManagerService(2696): Ulight 7->3|0
09-15 16:04:43.754: DEBUG/PowerManagerService(2696): setLightBrightness : mButtonLight : 0
09-15 16:04:43.759: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:43.814: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:43.859: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+2ms
09-15 16:04:43.899: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:43.949: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:43.999: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+3ms
09-15 16:04:44.039: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:44.089: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 1ms+3ms
09-15 16:04:44.139: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:44.179: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:44.229: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1980K, 37% free 13198K/20743K, external 38071K/40119K, paused 2ms+2ms
09-15 16:04:44.289: DEBUG/dalvikvm(8541): GC_FOR_MALLOC freed 2183K, 39% free 12755K/20743K, external 38071K/40119K, paused 26ms
09-15 16:04:44.354: DEBUG/dalvikvm(8541): GC_CONCURRENT freed 1145K, 35% free 13611K/20743K, external 38071K/40119K, paused 2ms+3ms
__________________
g o o g l e+ plus.neeldarax.de
androidblog www.neeldarax.de
Neeldarax ist offline   Mit Zitat antworten
Alt 15.09.2011, 18:30   #2 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Dual Core und RAM Limit

Bei Samsung Geräten läuft der gc von Haus aus dauernd

Ist am sgs 2 so und auch am galaxy Tag 10.1. Touchwiz vielleicht

Bzgl Nr: hat du überall threads eingebaut?
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 15.09.2011, 23:51   #3 (permalink)
Erfahrener Benutzer

Modell: G1 DevPhone / SGS2 / SGT10.1v

Registriert seit: 20.01.2009
Beiträge: 238
Abgegebene Danke: 7
Erhielt 50 Danke für 47 Beiträge
Standard AW: Dual Core und RAM Limit

Zitat:
Zitat von swordi Beitrag anzeigen
Bzgl Nr: hat du überall threads eingebaut?
Will heißen: Java nutzt prinzipiell nur eine CPU bzw. Kern, nur wenn du Threads verwendest werden diese auf die Kerne aufgeteilt
__________________
Meine App: Die Cocktail App für Android™ - jetzt im Market (PRO)
sixi ist offline   Mit Zitat antworten
Alt 16.09.2011, 11:27   #4 (permalink)
Android-Hilfe.de Mitglied

Modell: Motorola Atrix 4G

Registriert seit: 07.12.2010
Beiträge: 170
Abgegebene Danke: 14
Erhielt 32 Danke für 31 Beiträge
Neeldarax eine Nachricht über ICQ schicken
Standard AW: Dual Core und RAM Limit

Hallo ihr beiden,

also es sind paar Threads..

(Anzahl variert, das ist ein Abbild meines derzeitigen Zustandes)
Code:
DalvikVM[localhost:8608]    
    Thread [<3> main] (Running)    
    Thread [<27> Thread-3902] (Running)    
    Thread [<43> Timer-124] (Running)    
    Thread [<39> Timer-123] (Running)    
    Thread [<37> Timer-122] (Running)    
    Thread [<33> Timer-121] (Running)    
    Thread [<35> Timer-38] (Running)    
    Thread [<49> Timer-37] (Running)    
    Thread [<45> Timer-36] (Running)    
    Thread [<41> Timer-14] (Running)    
    Thread [<29> Timer-10] (Running)    
    Thread [<21> Timer-9] (Running)    
    Thread [<25> Timer-4] (Running)    
    Thread [<23> Timer-3] (Running)    
    Thread [<19> Timer-2] (Running)    
    Thread [<17> Timer-1] (Running)    
    Thread [<15> Timer-0] (Running)    
    Thread [<13> Binder Thread #2] (Running)    
    Thread [<11> Binder Thread #1] (Running)
Wäre aber denkbar, dass im Moment der Volllast, nur ein Thread arbeitet. Hier werden Aufgaben aus der Liste/Warteschlange ausgelesen und abgearbeitet.

Das Java nur ein Kern benutzt kenn ich noch aus Java 5/1.5 Zeiten *g
Wenn das immer noch der Fall ist, dann kann ich die 50% CPU-Last verstehen.

Aber kommen wir zum RAM. War gerade bei 77Mb und Android hat mir meine APP beendet, als ich es "minimiert" habe (jaja.. wenn Android Speicher brauch/will/what ever, beendet APPs im Hintergrund, um Speicher freizumachen...)

Optionen, Parameter oder Flags für RAM Zuordnung wären jetzt dann noch Interessant. Kennt sich da wer aus?

regards

edit: dalivk.vm.heapsize höher setzen!?
__________________
g o o g l e+ plus.neeldarax.de
androidblog www.neeldarax.de

Geändert von Neeldarax (16.09.2011 um 11:35 Uhr) Grund: add Beitrag
Neeldarax ist offline   Mit Zitat antworten
Alt 18.09.2011, 14:00   #5 (permalink)
Android Guru
 
Benutzerbild von Fr4gg0r

Modell: Samsung Galaxy S (I9000)

Registriert seit: 21.12.2009
Beiträge: 2.572
Abgegebene Danke: 76
Erhielt 506 Danke für 295 Beiträge
Standard AW: Dual Core und RAM Limit

es gibt die Methode setPersistent() in der Klasse Activity, sollte jedoch mit Vorsicht benutzt werden.
Fr4gg0r ist offline   Mit Zitat antworten
Alt 19.09.2011, 12:13   #6 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Desire HD

Registriert seit: 09.08.2010
Beiträge: 345
Abgegebene Danke: 11
Erhielt 40 Danke für 38 Beiträge
Standard AW: Dual Core und RAM Limit

Zum "RAM":

Jede App im Android hat einen "virtuellen" Speicher von 16MB (nicht mehr nicht weniger) Alles darüber hinaus führt zu OutOfMemoryError's.

Wenn deine App in "onPause()" geht und das Gerät speicher braucht, dann wirft das OS den GarbageCollector an und der Speicher deiner App wird freigegeben.

[Edit:] Die 16 MB können in manchen ROM's vergrößert werden, was allerdings einen Entwickler nicht tun sollte, da sonst die "Breite Masse" ausgeschlossen wird, welche nur die std. 16MB haben
Unicate ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei Unicate für diesen Beitrag:
Neeldarax (20.09.2011)
Alt 19.09.2011, 16:42   #7 (permalink)
Android Guru
 
Benutzerbild von Fr4gg0r

Modell: Samsung Galaxy S (I9000)

Registriert seit: 21.12.2009
Beiträge: 2.572
Abgegebene Danke: 76
Erhielt 506 Danke für 295 Beiträge
Standard AW: Dual Core und RAM Limit

der heapspace ist nicht bei jedem Android Gerät auf 16mb eingestellt.
Samsung z.B. stellt da stets viel höhere Werte ein.
Zur Not kannste noch nativ Speicher allokieren, da gibts dann keine Begrenzung pro App.
Fr4gg0r ist offline   Mit Zitat antworten
Alt 19.09.2011, 16:48   #8 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Dual Core und RAM Limit

aber weniger als 16mb hat kein hersteller.

deshalb sollte man dann wohl im moment von maximal 16 mb ausgehen
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 20.09.2011, 09:24   #9 (permalink)
Android-Hilfe.de Mitglied

Modell: Motorola Atrix 4G

Registriert seit: 07.12.2010
Beiträge: 170
Abgegebene Danke: 14
Erhielt 32 Danke für 31 Beiträge
Neeldarax eine Nachricht über ICQ schicken
Standard AW: Dual Core und RAM Limit

Hallo zusammen,

also setPersistent() hab auf die schnelle nicht gefunden, aber da haste schon Recht Fr4gg0r, nur mit Vorsicht zu benutzen. Damit hebelt man das Androidsystem aus, das reguliert sich selbst und es ist auch gut so.

Das Android bei "onPause()" die APP vom GC gekillt wird, wenn diese den dalivk.vm.heapsize Wert erreicht bzw. übersteigt ist eig. auch logisch. Man müsste wohl Arbeit in die Bereinigung reinstecken, spätestens beim onPause aufruf.

Das beim Überstreiten der heapsize ein OutOfMemoryError auftritt, muss ich widerlegen!

Wie ich schon geschrieben habe, erreichte meine APP fast 80MB, der heapsize ist beim Atrix und S2 auf 30MB eingestellt. (Datei zu finden unter /system/build.prop)
Und da kommen wir wieder zu onPause und APP wird vom GC beendet.

Das Puzzel fügt sich

Danke für eure Anregungen.

regards

EDIT:
Aber sowas wie ne Grenze scheint es doch zu geben *g
Code:
09-21 14:03:33.085: ERROR/dalvikvm-heap(10386): 20736-byte external allocation too large for this process.
09-21 14:03:33.085: ERROR/GraphicsJNI(10386): VM won't let us allocate 20736 bytes
__________________
g o o g l e+ plus.neeldarax.de
androidblog www.neeldarax.de

Geändert von Neeldarax (21.09.2011 um 14:09 Uhr) Grund: new information
Neeldarax ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
HTC Vigor mit 1,5GHz Dual-Core-Prozessor und HD-Display quercus Android News 0 28.07.2011 16:45
beste und zukunfsicherste dual-core android phone atm puma95 Allgemeine Kaufberatung 4 04.06.2011 19:41
Dual Core = Heizung? vidar LG P990 Optimus Speed Forum 9 25.02.2011 07:58
Suche: Netbook mit Dual-Core Hami-1903 Beendete Inserate (Marktplatz-Archiv) 0 14.02.2011 11:10
HTC Magic Dual Core ! Burki HTC Magic Forum 6 29.06.2009 20:58




Du liest gerade: "Dual Core und RAM Limit" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.