Autore Topic: Consumo batteria!?!?!?  (Letto 995 volte)

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Consumo batteria!?!?!?
« il: 15 Marzo 2012, 14:46:43 CET »
0
Non so se è la sezione giusta comunque sto sviluppando una app che mette abbastanza "pressione" sulla CPU.

Stavo guardando il consumo della batteria e mi è spuntato fuori un dato di questo tipo:

Dopo circa mezz'ora in primo piano la mia applicazione ha bruciato circa il 18% di batteria.
Ho visto quanto ha consumato il display e quanto è stato acceso ed il rusltato è che se assumo che il consumo dello schemo sia separato dalla mia app e faccio i calcoli (intendo dire che se ho 1 ora di consumo schermo e la mia app era attiva 30 minuti vuol dire che la metà del consumo dello schermo lo ha fatto la mia app) mi viene fuori un 25% di batteria consumato in 30 minuti!!!!!!!!!!!!!!!!!!!!!!!!

E' normale che una app che gira di continuo (tipo un gioco o qualcosa che fa streaming video) per 30 minuti mi finisca il 25% di batteria o mi devo preoccupare???

 :-[

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Consumo batteria!?!?!?
« Risposta #1 il: 15 Marzo 2012, 14:57:06 CET »
0
E' normale che una app che gira di continuo (tipo un gioco o qualcosa che fa streaming video) per 30 minuti mi finisca il 25% di batteria o mi devo preoccupare???

Non so se è normale, ma anche io ho notato che uso pesante di CPU e/o RETE si mangiano letteralmente la batteria.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Consumo batteria!?!?!?
« Risposta #2 il: 15 Marzo 2012, 15:45:38 CET »
0
Diciamo che più che altro mi interessa il principio. Ovvero: se dopo 2 ore la mia app finisce la batteria del galaxy s2 non mi interessa a patto che app simili abbiano un consumo simile.  :D

Per esempio un dubbio che ho è se mettere un thread in sleep porti effettivamente un vantaggio in termini di consumo.

Mi spiego: nel mio caso il device è un dual core, supponendo che sia possibile "spegnere" un core mi chiedo se inserire uno sleep di qualche millisecondo per frame abbia senso.

Se stai facendo del play video a 30hz e ti "avanzano" 10ms a frame che succede se metti in sleep? Viene "spento" un core oppure semplicemente vengono liberate risorse?????

Ad occhio e croce in una situazione normale hai:

- il tuo UI thread... si suppone che il telefono te lo terrai con lo schermo acceso!
- il thread del touch (stesso della UI?) visto che col telefono ci interagisci!
- il sistema che si farà gli affari propri...
- il tuo thread di rendering del gioco/video (quello che puoi mettere in sleep)
- qualche servizio in background (chi è che non ha un viber o altre app che ogni tanto fanno il poll?)
- wifi
- funzioni telefoniche

Ce ne è abbastanza per occupare due core, credo...  tu che ne pensi?  :-\

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Consumo batteria!?!?!?
« Risposta #3 il: 15 Marzo 2012, 16:00:21 CET »
0
Ce ne è abbastanza per occupare due core, credo...  tu che ne pensi?  :-\

Secondo me uno sleep nel thread di lavoro rilascia la CPU al sistema che presumo lo consideri tempo di idle, ma ad esempio la frequenza di redraw dello schermo rimane inalterata, per cui la parte grafica consuma tale e quale.

Per quanto riguarda il power management dei core, trovo alquanto improbabile (dal lato tecnico) lo spegnimento/riavvio di core per qualche ms. E' molto più probabile che a fronte di una carico "medio" della CPU, il sistema effettui un trimming delle CPU (riduzione frequenza, riduzione tensione).
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Consumo batteria!?!?!?
« Risposta #4 il: 15 Marzo 2012, 16:02:43 CET »
0
Uhm, interessante!

Quindi dici che nel lungo periodo (decine di minuti di uso) inserire uno sleep potrebbe comunque avere effetti benefici sulla durata della batteria?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Consumo batteria!?!?!?
« Risposta #5 il: 15 Marzo 2012, 16:29:17 CET »
0
Quindi dici che nel lungo periodo (decine di minuti di uso) inserire uno sleep potrebbe comunque avere effetti benefici sulla durata della batteria?

Partendo dal presupposto che il consumo di potenza è funzione praticamente lineare delle operazioni eseguite, il consumo per eseguire 1 milione di operazioni è uguale sia che tu le esegua in 1 secondo con cpu al 100% che in 10 secondi con cpu al 10%. Questa approssimazione è abbastanza valida, infatti il parametro Watt/Mips è comunemente usato nel valutare i sistemi dei datacenter.

Se con lo sleep tu intendi distribuire l'elaborazione su più cicli di thread, le operazioni finale sono sempre le stesse (come totale) e quindi il consumo dovrebbe essere sostanzialmente inalterato. Se lo sleep serve a prevenire l'esecuzione di operazioni inutili, allora è presumibile ci sia un risparmio.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Consumo batteria!?!?!?
« Risposta #6 il: 15 Marzo 2012, 17:59:14 CET »
0
Lo sleep eviterebbe di effettuare operazioni inutili.

In teoria.

Nella pratica riscontro forti variazioni nella velocità di calcolo (sia a causa dei dati in ingresso sia a causa della natura di Android).

Questo significa che a meno di avere molto margine è impossibile essere sicuri di andare in sleep e stare dentro al budget previsto in ms per il prossimo frame. Per esempio se eseguo qualcosa in 10ms, ne attendo 5 e poi al prossimo giro invece di 10ms me ne occorrono 20 ho già fatto il "danno".

 :'(