Publicação
Supporting software developers in making energy saving decisions
| Resumo: | In the last decade, energy consumption analysis and improvement in software has been establishing as a new key concern for developers. Nevertheless, as recent studies demonstrate, developers are still struggling to understand how to analyze and improve the energy efficiency of their code. Aware of this, the research community has been continuously working on providing new tools, techniques, and findings that developers can rely on. With this thesis, our main target is to further extend the knowledge and mechanisms available for developers to statically reason about the energy efficiency of their code. Our contributions can be grouped in two topics: energy behavior prediction and energy-aware software evolution. To tackle energy prediction, we developed a new approach which combines static program analysis/verification with energy models, with the goal of providing accurate energy estimations for worst-case execution scenarios, which we called Worst-Case Energy Consumption (WCEC) prediction. We used SPLs as a case study, implementing the technique in a prototype tool and evaluating it’s accuracy by performing an experiment using existing SPLs. The energy-aware evolution topic was addressed in two ways. First, we studied the energy impact of replacing energy-greedy coding patterns with less greedy alternatives. We did so by performing a large-scale study, using hundreds of Android applications and testing them in several different scenarios. This allowed us to find statistical evidence of what patterns provide the most significant savings when replaced, and how replacing multiple patterns can affect such savings. Finally, building on the previous study, we developed a new concept, called Energy Debt, which goal is to help developers assess the impact of addressing (or retaining) energy-greedy patterns in their code, in the short and in the long term, by considering a software’s different releases. This concept is extensible to any target system and language, and we performed an initial experiment using an Android application to properly explain it and motivate it. We strongly believe that this thesis, in addition to addressing the existing lack of energy related knowledge and tools, also provides novel and promising techniques and findings, which we hope can be used by other researchers in the area to continue exploring these subjects. |
|---|---|
| Autores principais: | Couto, Marco Rafael Linhares |
| Assunto: | Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
| Ano: | 2020 |
| País: | Portugal |
| Tipo de documento: | tese de doutoramento |
| Tipo de acesso: | acesso aberto |
| Instituição associada: | Universidade do Minho |
| Idioma: | inglês |
| Origem: | RepositóriUM - Universidade do Minho |
| Resumo: | In the last decade, energy consumption analysis and improvement in software has been establishing as a new key concern for developers. Nevertheless, as recent studies demonstrate, developers are still struggling to understand how to analyze and improve the energy efficiency of their code. Aware of this, the research community has been continuously working on providing new tools, techniques, and findings that developers can rely on. With this thesis, our main target is to further extend the knowledge and mechanisms available for developers to statically reason about the energy efficiency of their code. Our contributions can be grouped in two topics: energy behavior prediction and energy-aware software evolution. To tackle energy prediction, we developed a new approach which combines static program analysis/verification with energy models, with the goal of providing accurate energy estimations for worst-case execution scenarios, which we called Worst-Case Energy Consumption (WCEC) prediction. We used SPLs as a case study, implementing the technique in a prototype tool and evaluating it’s accuracy by performing an experiment using existing SPLs. The energy-aware evolution topic was addressed in two ways. First, we studied the energy impact of replacing energy-greedy coding patterns with less greedy alternatives. We did so by performing a large-scale study, using hundreds of Android applications and testing them in several different scenarios. This allowed us to find statistical evidence of what patterns provide the most significant savings when replaced, and how replacing multiple patterns can affect such savings. Finally, building on the previous study, we developed a new concept, called Energy Debt, which goal is to help developers assess the impact of addressing (or retaining) energy-greedy patterns in their code, in the short and in the long term, by considering a software’s different releases. This concept is extensible to any target system and language, and we performed an initial experiment using an Android application to properly explain it and motivate it. We strongly believe that this thesis, in addition to addressing the existing lack of energy related knowledge and tools, also provides novel and promising techniques and findings, which we hope can be used by other researchers in the area to continue exploring these subjects. |
|---|