Uma abordagem estática para recomendar estruturas de dados Java para melhorar o consumo de energia
Autor(a) principal: | |
---|---|
Data de Publicação: | 2016 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFPE |
dARK ID: | ark:/64986/001300000z419 |
Texto Completo: | https://repositorio.ufpe.br/handle/123456789/24526 |
Resumo: | Programadores 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. |
id |
UFPE_bb8c56a8de78ce201f642b6f98cef198 |
---|---|
oai_identifier_str |
oai:repositorio.ufpe.br:123456789/24526 |
network_acronym_str |
UFPE |
network_name_str |
Repositório Institucional da UFPE |
repository_id_str |
2221 |
spelling |
ARAÚJO NETO, José Benito Fernandes dehttp://lattes.cnpq.br/0179611253641231http://lattes.cnpq.br/7310046838140771LIMA FILHO, Fernando José Castor dePINTO, Gustavo Henrique Lima2018-05-02T22:09:29Z2018-05-02T22:09:29Z2016-08-30https://repositorio.ufpe.br/handle/123456789/24526ark:/64986/001300000z419Programadores 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.Java 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.porUniversidade Federal de PernambucoPrograma de Pos Graduacao em Ciencia da ComputacaoUFPEBrasilAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessEngenharia de softwareConsumo de energiaUma abordagem estática para recomendar estruturas de dados Java para melhorar o consumo de energiainfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesismestradoreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPETHUMBNAILDISSERTAÇÃO José Benito Fernandes de Araújo Neto.pdf.jpgDISSERTAÇÃO José Benito Fernandes de Araújo Neto.pdf.jpgGenerated Thumbnailimage/jpeg1383https://repositorio.ufpe.br/bitstream/123456789/24526/5/DISSERTA%c3%87%c3%83O%20Jos%c3%a9%20Benito%20Fernandes%20de%20Ara%c3%bajo%20Neto.pdf.jpg10384e61e1bd15942094c65a458876eeMD55ORIGINALDISSERTAÇÃO José Benito Fernandes de Araújo Neto.pdfDISSERTAÇÃO José Benito Fernandes de Araújo Neto.pdfapplication/pdf793651https://repositorio.ufpe.br/bitstream/123456789/24526/1/DISSERTA%c3%87%c3%83O%20Jos%c3%a9%20Benito%20Fernandes%20de%20Ara%c3%bajo%20Neto.pdf17e6b1ac1528ce716feaa7c768365410MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-82311https://repositorio.ufpe.br/bitstream/123456789/24526/2/license.txt4b8a02c7f2818eaf00dcf2260dd5eb08MD52TEXTDISSERTAÇÃO José Benito Fernandes de Araújo Neto.pdf.txtDISSERTAÇÃO José Benito Fernandes de Araújo Neto.pdf.txtExtracted texttext/plain138109https://repositorio.ufpe.br/bitstream/123456789/24526/3/DISSERTA%c3%87%c3%83O%20Jos%c3%a9%20Benito%20Fernandes%20de%20Ara%c3%bajo%20Neto.pdf.txte5d82f2eae2e718298043018b6a3a720MD53CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufpe.br/bitstream/123456789/24526/4/license_rdfe39d27027a6cc9cb039ad269a5db8e34MD54123456789/245262019-10-25 23:48:40.717oai:repositorio.ufpe.br:123456789/24526TGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKClRvZG8gZGVwb3NpdGFudGUgZGUgbWF0ZXJpYWwgbm8gUmVwb3NpdMOzcmlvIEluc3RpdHVjaW9uYWwgKFJJKSBkZXZlIGNvbmNlZGVyLCDDoCBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBQZXJuYW1idWNvIChVRlBFKSwgdW1hIExpY2Vuw6dhIGRlIERpc3RyaWJ1acOnw6NvIE7Do28gRXhjbHVzaXZhIHBhcmEgbWFudGVyIGUgdG9ybmFyIGFjZXNzw612ZWlzIG9zIHNldXMgZG9jdW1lbnRvcywgZW0gZm9ybWF0byBkaWdpdGFsLCBuZXN0ZSByZXBvc2l0w7NyaW8uCgpDb20gYSBjb25jZXNzw6NvIGRlc3RhIGxpY2Vuw6dhIG7Do28gZXhjbHVzaXZhLCBvIGRlcG9zaXRhbnRlIG1hbnTDqW0gdG9kb3Mgb3MgZGlyZWl0b3MgZGUgYXV0b3IuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKTGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKCkFvIGNvbmNvcmRhciBjb20gZXN0YSBsaWNlbsOnYSBlIGFjZWl0w6EtbGEsIHZvY8OqIChhdXRvciBvdSBkZXRlbnRvciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMpOgoKYSkgRGVjbGFyYSBxdWUgY29uaGVjZSBhIHBvbMOtdGljYSBkZSBjb3B5cmlnaHQgZGEgZWRpdG9yYSBkbyBzZXUgZG9jdW1lbnRvOwpiKSBEZWNsYXJhIHF1ZSBjb25oZWNlIGUgYWNlaXRhIGFzIERpcmV0cml6ZXMgcGFyYSBvIFJlcG9zaXTDs3JpbyBJbnN0aXR1Y2lvbmFsIGRhIFVGUEU7CmMpIENvbmNlZGUgw6AgVUZQRSBvIGRpcmVpdG8gbsOjbyBleGNsdXNpdm8gZGUgYXJxdWl2YXIsIHJlcHJvZHV6aXIsIGNvbnZlcnRlciAoY29tbyBkZWZpbmlkbyBhIHNlZ3VpciksIGNvbXVuaWNhciBlL291IGRpc3RyaWJ1aXIsIG5vIFJJLCBvIGRvY3VtZW50byBlbnRyZWd1ZSAoaW5jbHVpbmRvIG8gcmVzdW1vL2Fic3RyYWN0KSBlbSBmb3JtYXRvIGRpZ2l0YWwgb3UgcG9yIG91dHJvIG1laW87CmQpIERlY2xhcmEgcXVlIGF1dG9yaXphIGEgVUZQRSBhIGFycXVpdmFyIG1haXMgZGUgdW1hIGPDs3BpYSBkZXN0ZSBkb2N1bWVudG8gZSBjb252ZXJ0w6otbG8sIHNlbSBhbHRlcmFyIG8gc2V1IGNvbnRlw7pkbywgcGFyYSBxdWFscXVlciBmb3JtYXRvIGRlIGZpY2hlaXJvLCBtZWlvIG91IHN1cG9ydGUsIHBhcmEgZWZlaXRvcyBkZSBzZWd1cmFuw6dhLCBwcmVzZXJ2YcOnw6NvIChiYWNrdXApIGUgYWNlc3NvOwplKSBEZWNsYXJhIHF1ZSBvIGRvY3VtZW50byBzdWJtZXRpZG8gw6kgbyBzZXUgdHJhYmFsaG8gb3JpZ2luYWwgZSBxdWUgZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBhIHRlcmNlaXJvcyBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2Ugb3MgZGlyZWl0b3MgZGUgb3V0cmEgcGVzc29hIG91IGVudGlkYWRlOwpmKSBEZWNsYXJhIHF1ZSwgbm8gY2FzbyBkbyBkb2N1bWVudG8gc3VibWV0aWRvIGNvbnRlciBtYXRlcmlhbCBkbyBxdWFsIG7Do28gZGV0w6ltIG9zIGRpcmVpdG9zIGRlCmF1dG9yLCBvYnRldmUgYSBhdXRvcml6YcOnw6NvIGlycmVzdHJpdGEgZG8gcmVzcGVjdGl2byBkZXRlbnRvciBkZXNzZXMgZGlyZWl0b3MgcGFyYSBjZWRlciDDoApVRlBFIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgTGljZW7Dp2EgZSBhdXRvcml6YXIgYSB1bml2ZXJzaWRhZGUgYSB1dGlsaXrDoS1sb3MgbGVnYWxtZW50ZS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBlc3NlIG1hdGVyaWFsIGN1am9zIGRpcmVpdG9zIHPDo28gZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3UgY29udGXDumRvIGRvIGRvY3VtZW50byBlbnRyZWd1ZTsKZykgU2UgbyBkb2N1bWVudG8gZW50cmVndWUgw6kgYmFzZWFkbyBlbSB0cmFiYWxobyBmaW5hbmNpYWRvIG91IGFwb2lhZG8gcG9yIG91dHJhIGluc3RpdHVpw6fDo28gcXVlIG7Do28gYSBVRlBFLMKgZGVjbGFyYSBxdWUgY3VtcHJpdSBxdWFpc3F1ZXIgb2JyaWdhw6fDtWVzIGV4aWdpZGFzIHBlbG8gcmVzcGVjdGl2byBjb250cmF0byBvdSBhY29yZG8uCgpBIFVGUEUgaWRlbnRpZmljYXLDoSBjbGFyYW1lbnRlIG8ocykgbm9tZShzKSBkbyhzKSBhdXRvciAoZXMpIGRvcyBkaXJlaXRvcyBkbyBkb2N1bWVudG8gZW50cmVndWUgZSBuw6NvIGZhcsOhIHF1YWxxdWVyIGFsdGVyYcOnw6NvLCBwYXJhIGFsw6ltIGRvIHByZXZpc3RvIG5hIGFsw61uZWEgYykuCg==Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212019-10-26T02:48:40Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false |
dc.title.pt_BR.fl_str_mv |
Uma abordagem estática para recomendar estruturas de dados Java para melhorar o consumo de energia |
title |
Uma abordagem estática para recomendar estruturas de dados Java para melhorar o consumo de energia |
spellingShingle |
Uma abordagem estática para recomendar estruturas de dados Java para melhorar o consumo de energia ARAÚJO NETO, José Benito Fernandes de Engenharia de software Consumo de energia |
title_short |
Uma abordagem estática para recomendar estruturas de dados Java para melhorar o consumo de energia |
title_full |
Uma abordagem estática para recomendar estruturas de dados Java para melhorar o consumo de energia |
title_fullStr |
Uma abordagem estática para recomendar estruturas de dados Java para melhorar o consumo de energia |
title_full_unstemmed |
Uma abordagem estática para recomendar estruturas de dados Java para melhorar o consumo de energia |
title_sort |
Uma abordagem estática para recomendar estruturas de dados Java para melhorar o consumo de energia |
author |
ARAÚJO NETO, José Benito Fernandes de |
author_facet |
ARAÚJO NETO, José Benito Fernandes de |
author_role |
author |
dc.contributor.authorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/0179611253641231 |
dc.contributor.advisorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/7310046838140771 |
dc.contributor.author.fl_str_mv |
ARAÚJO NETO, José Benito Fernandes de |
dc.contributor.advisor1.fl_str_mv |
LIMA FILHO, Fernando José Castor de |
dc.contributor.advisor-co1.fl_str_mv |
PINTO, Gustavo Henrique Lima |
contributor_str_mv |
LIMA FILHO, Fernando José Castor de PINTO, Gustavo Henrique Lima |
dc.subject.por.fl_str_mv |
Engenharia de software Consumo de energia |
topic |
Engenharia de software Consumo de energia |
description |
Programadores 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. |
publishDate |
2016 |
dc.date.issued.fl_str_mv |
2016-08-30 |
dc.date.accessioned.fl_str_mv |
2018-05-02T22:09:29Z |
dc.date.available.fl_str_mv |
2018-05-02T22:09:29Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
https://repositorio.ufpe.br/handle/123456789/24526 |
dc.identifier.dark.fl_str_mv |
ark:/64986/001300000z419 |
url |
https://repositorio.ufpe.br/handle/123456789/24526 |
identifier_str_mv |
ark:/64986/001300000z419 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
Attribution-NonCommercial-NoDerivs 3.0 Brazil http://creativecommons.org/licenses/by-nc-nd/3.0/br/ info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
Attribution-NonCommercial-NoDerivs 3.0 Brazil http://creativecommons.org/licenses/by-nc-nd/3.0/br/ |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
dc.publisher.program.fl_str_mv |
Programa de Pos Graduacao em Ciencia da Computacao |
dc.publisher.initials.fl_str_mv |
UFPE |
dc.publisher.country.fl_str_mv |
Brasil |
publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFPE instname:Universidade Federal de Pernambuco (UFPE) instacron:UFPE |
instname_str |
Universidade Federal de Pernambuco (UFPE) |
instacron_str |
UFPE |
institution |
UFPE |
reponame_str |
Repositório Institucional da UFPE |
collection |
Repositório Institucional da UFPE |
bitstream.url.fl_str_mv |
https://repositorio.ufpe.br/bitstream/123456789/24526/5/DISSERTA%c3%87%c3%83O%20Jos%c3%a9%20Benito%20Fernandes%20de%20Ara%c3%bajo%20Neto.pdf.jpg https://repositorio.ufpe.br/bitstream/123456789/24526/1/DISSERTA%c3%87%c3%83O%20Jos%c3%a9%20Benito%20Fernandes%20de%20Ara%c3%bajo%20Neto.pdf https://repositorio.ufpe.br/bitstream/123456789/24526/2/license.txt https://repositorio.ufpe.br/bitstream/123456789/24526/3/DISSERTA%c3%87%c3%83O%20Jos%c3%a9%20Benito%20Fernandes%20de%20Ara%c3%bajo%20Neto.pdf.txt https://repositorio.ufpe.br/bitstream/123456789/24526/4/license_rdf |
bitstream.checksum.fl_str_mv |
10384e61e1bd15942094c65a458876ee 17e6b1ac1528ce716feaa7c768365410 4b8a02c7f2818eaf00dcf2260dd5eb08 e5d82f2eae2e718298043018b6a3a720 e39d27027a6cc9cb039ad269a5db8e34 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE) |
repository.mail.fl_str_mv |
attena@ufpe.br |
_version_ |
1815172950019538944 |