| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 1.01 MB | Adobe PDF |
Orientador(es)
Resumo(s)
Ao longo dos últimos anos, o interesse na análise do consumo de energia em aplicações
Android tem vindo a aumentar significativamente. Na verdade, há um número
considerável de estudos que visam analisar o consumo de energia de várias maneiras,
como medir/estimar a energia consumida por uma aplicação ou bloco de código, detectar
padrões de código energeticamente dispendiosos, chamadas a APIs e perceber quais os
componentes de hardware que mais energia consomem.
No entanto, quando se trata de melhorar a eficiência energética de uma aplicação
enfrentamos um novo desafio, que pode ser alcançado através de melhorias no código
fonte, aproveitando técnicas de poupança de energia. Contudo, existe alguma escassez de
informação sobre tais técnicas e o seu impacto no consumo de energia.
Com esta dissertação, analisamos o impacto da técnica de memoization no consumo de
energia em aplicações Android. Apresentamos um estudo sistemático sobre o uso de memoization,
onde comparamos as implementações de 18 métodos de diferentes aplicações,
com e sem uso de memoization. Neste estudo, mostramos os resultados para 3 métricas:
energia, tempo de execução e memória gasta para ambos as versões. Utilizando essa abordagem,
foi-nos possível caracterizar os métodos como sendo propícios, imprevisíveis ou
impróprios à técnica de memoization.
Os nossos resultados mostram que utilizar memoization pode ser claramente uma
boa abordagem para poupar energia. Além disso, também descobrimos que o tempo
de execução melhora, assim como a própria memória consumida. Para os 18 métodos
testados, 13 melhoraram em todas as métricas de estudo. Embora a relação entre energia
e tempo seja conhecida, neste trabalho descobrimos também que existe uma forte relação
entre energia e memória consumida. De facto, um menor consumo de memória (induzido
pela técnica de memoization) implica também um menor consumo de energia.
Descrição
Palavras-chave
Android Memoization Consumo de energia Tempo de execução Consumo de memória Análise de código
