Ver Mensaje Individual
  #6  
Viejo 17/05/13, 09:15:45
Array

[xs_avatar]
maid450 maid450 no está en línea
Miembro del foro
 
Fecha de registro: sep 2009
Localización: Valencia
Mensajes: 450
Modelo de smartphone: Nexus 5 / Nexus 7
Tu operador: Yoigo
Bueno, en principio la mayoría de acciones en sí tienen un consumo minimo (algunas prácticamente nulo como hacer operaciones matemáticas, asignaciones de variables, comparaciones "if", etc...). Consume más que no hacerlas, está claro, pero es casi imperceptible.
Lo más "grave" (y resalto las comillas, no es realmente tan grave) de las acciones es la frecuencia y el momento en que se realizan por el hecho de que pueden despertar al telefono del "sueño profundo" (deep sleep) que es el estado de reposo en que el movil menos batería consume, pero repito, salvo en casos muy exagerados no deberíamos preocuparnos demasiado por ello.
Hay acciones que si hay que usar con más mesura (si se quiere ahorrar batería), como obtener ubicaciones, grabar sonido, tomar fotos, etc... pero ahí ya entran los usos de cada uno y lo utiles que puedan resultar ciertas acciones a cada usuario, que puede compensar su consumo.

En definitiva, no hay que obsesionarse, y hay que pensar en tasker como una aplicación que "per se" está muy optimizada en cuanto al uso de batería y, salvo que hagamos cosas muy muy raras el consumo no se va a resentir (incluso los perfiles apropiados permiten ahorrar algo de batería).

Como nota aparte, me parece muy interesante la comparación en terminos de consumo de 2 tareas funcionalmente equivalentes. Hago un analisis dentro de un spoiler para que a quien no le interese pueda obviarlo, pero la idea es aplicarlo solo a tareas realmente grandes o que usen acciones de las que he dicho que consumen bastante, en terminos prácticos estos 2 ejemplos se puede decir que consumen lo mismo: nada.
(Click para mostrar/ocultar)

Desconozco como está implementado tasker internamente, pero estoy casi seguro que en terminos de optimización (tanto tiempo como consumo) cuantas menos acciones, mejor (el 2º ejemplo sería el ganador).
Sin embargo, si implementásemos lo mismo en una unica acción "Script->Javascriptlet" que permite ejecutar todo un trozo de código en una única acción tasker, habría que analizarlo en función de "operaciones realizadas".

Este sería el primer ejemplo en javascript:
Código:
if(pacotraecerveza) pacoesuntioguay = true;
else pacoesuntioguay = false;
y básicamente en operaciones son:
- 1 comparación (pacotraecerveza es igual a true?)
- 1 asignación (paco=true o paco=false).
no importa el resultado de la comparación, el coste es constante.

y esto sería el segundo ejemplo:
Código:
pacoesuntioguay = false;
if(pacotraecerveza) pacoesuntioguay = true;
En este caso hace estas operaciones:
- 1 asignación (Paco en principio NO es un tio guay )
- 1 comparación (pacotraecerveza es igual a true?)
- Si Paco ha traido cerveza, otra asignación (ha traido cerveza -> Paco SI es un tio guay)
Con lo que en el caso de que Paco no se haya currado unas cervezas es el mismo coste que el primer ejemplo, mientras que si ha traido cerveza cuesta 1 operación más y por tanto es peor.

Está claro que como he dicho antes, ambas formas realmente tienen un consumo que se puede considerar nulo, pero podemos aplicar esto a tares mucho más grandes.

Última edición por maid450 Día 17/05/13 a las 13:25:27.
Responder Con Cita