Skip navigation
Por favor, use este identificador para citar o enlazar este ítem: https://repositorio.ufpe.br/handle/123456789/24526

Comparte esta pagina

Registro completo de metadatos
Campo DC Valor Lengua/Idioma
dc.contributor.advisorLIMA FILHO, Fernando José Castor de-
dc.contributor.authorARAÚJO NETO, José Benito Fernandes de-
dc.date.accessioned2018-05-02T22:09:29Z-
dc.date.available2018-05-02T22:09:29Z-
dc.date.issued2016-08-30-
dc.identifier.urihttps://repositorio.ufpe.br/handle/123456789/24526-
dc.description.abstractProgramadores Java possuem um amplo repertório de coleções a seu dispor. Essas coleções implementam abstrações bem conhecidas como listas, conjuntos, filas, e tabelas. Além disso, a linguagem conta com um rico acervo de coleções que podem ser utilizadas paralelamente por múltiplas threads em execução, sem comprometer a corretude do programa. Estudos anteriores demonstraram que essas coleções possuem diferentes características em termos de desempenho, escalabilidade, controle de concorrência e consumo de energia. Em particular, Pinto et al. (2016) investigaram os impactos do uso de diferentes coleções seguras para múltiplas threads no consumo de energia de uma aplicação. Esse estudo descobriu que diferentes operações de uma mesma implementação possuem diferentes características de consumo de energia e o mesmo se aplica a diferentes implementações de uma mesma abstração. Tendo em vista esta diferença do consumo de energia de acordo com a coleção e operação utilizadas, este trabalho tem por objetivo melhorar a eficiência de energia de aplicações concorrentes que fazem uso intenso de coleções através da recomendação automática de estruturas de dados mais eficientes em um determinado contexto. Dessa forma, este trabalho desenvolveu uma abordagem baseada em análise estática para analisar de forma automática o uso das estruturas de dados de uma aplicação e recomendar transformações necessárias de acordo com suas utilizações, de modo a reduzir o consumo de energia da aplicação. Mais especificamente analisou-se um total de 11 implementações de três tipos de estrutura de dados seguras para threads disponíveis na linguagem Java: conjuntos (4), mapas (4) e sequências (3). Utilizando a biblioteca WALA, a implementação da abordagem proposta apresenta recomendações das transformações necessárias para que as aplicações consumam menos energia. Esta recomendação é realizada através de uma heurística baseada no consumo de energia de cada coleção para um determinado ambiente. Para avaliar a abordagem, foram utilizados benchmarks, conhecidos na academia, de aplicações reais. Utilizando a abordagem proposta nesse trabalho foi percebida uma redução do consumo de energia de até 4.37%. Até onde foi possível averiguar, este é o primeiro trabalho que torna possível reduzir o consumo de energia de uma aplicação sem a necessidade de executá-la.pt_BR
dc.language.isoporpt_BR
dc.publisherUniversidade Federal de Pernambucopt_BR
dc.rightsopenAccesspt_BR
dc.rightsAttribution-NonCommercial-NoDerivs 3.0 Brazil*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/br/*
dc.subjectEngenharia de softwarept_BR
dc.subjectConsumo de energiapt_BR
dc.titleUma abordagem estática para recomendar estruturas de dados Java para melhorar o consumo de energiapt_BR
dc.typemasterThesispt_BR
dc.contributor.advisor-coPINTO, Gustavo Henrique Lima-
dc.contributor.authorLatteshttp://lattes.cnpq.br/0179611253641231pt_BR
dc.publisher.initialsUFPEpt_BR
dc.publisher.countryBrasilpt_BR
dc.degree.levelmestradopt_BR
dc.contributor.advisorLatteshttp://lattes.cnpq.br/7310046838140771pt_BR
dc.publisher.programPrograma de Pos Graduacao em Ciencia da Computacaopt_BR
dc.description.abstractxJava developers have a wide repertoire of collections at their disposal. These collections implement well-known abstractions such as lists, sets, queues, and maps. In addition, the Java language has a rich framework of collections that can be used in parallel by multiple threads running without compromising the correctness of the program. Previous work has shown that these collections have different characteristics in terms of performance, scalability, concurrency control, and energy consumption. In particular, Pinto et al. (2016) investigated the impact of using different thread safe collections on the energy consumption of an application. Among the findings, this study found that different operations of the same implementation have different characteristics, in terms of energy consumption, and the same applies to different implementations of the same abstraction. Since both dimensions, the operations and the collection implementation, impact energy, this work aims to improve the energy efficiency of concurrent applications that do intense use of collections by automatically recommending potentially more efficient collection implementations in a given context. Our approach leverages static analysis to collect information about how applications use thread-safe collections from Java and, based on the energy usage profiles of the operations of these collections, make informed recommendations that potentially save energy. We have developed CECOtool, a tool that implements this approach. Usage of the tool does not require the application under analysis to be executed. To evaluate the approach, we used well-known benchmarks based on two real-world applications. Using this approach we observed a reduction in energy consumption of up to 4.37%. To the best of our knowledge, this is the first work aiming to reduce the energy consumption of an application without the need to run it.pt_BR
Aparece en las colecciones: Dissertações de Mestrado - Ciência da Computação

Ficheros en este ítem:
Fichero Descripción Tamaño Formato  
DISSERTAÇÃO José Benito Fernandes de Araújo Neto.pdf775,05 kBAdobe PDFVista previa
Visualizar/Abrir


Este ítem está protegido por copyright original



Este ítem está sujeto a una licencia Creative Commons Licencia Creative Commons Creative Commons