Um estudo sobre consumo de energia em aplicações JavaScript: Identificação dos custos energéticos para a etapa de integração continua

Detalhes bibliográficos
Autor(a) principal: Vellone, Fabricio
Data de Publicação: 2023
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional da UFSCAR
Texto Completo: https://repositorio.ufscar.br/handle/ufscar/17558
Resumo: Given the climate context that the world finds itself in, controlling the energy consumption that humans perform on a daily basis is indispensable for the well-being of the planet and sustainability. For software this is no different. This work aimed to analyze the energy consumption in the Continuous Integration process of JavaScript applications. In particular, each step of the process was studied, identifying how energy consumption is distributed, tracing a relationship between the execution time of the steps and energy consumption, in addition to making parallels between these consumptions in the software world and the energy consumption of everyday life. First the energy consumption capture tool perf was selected. Next, JavaScript projects were selected for analysis following some specific criteria, such as the existence of different tests and CI, as well as standardizing all existing nomenclatures in these projects. Finally, the chosen tool was combined with scripts to obtain the raw data and the analysis was performed using spreadsheets. It was possible to verify that the testing stages were the most costly among the stages evaluated. For the relationship between time and energy consumption, it was observed that the energy consumption tends to be linear with time for direct processing, and the non-direct processing tends to present a logarithmic pattern of behavior. Furthermore, it was seen that a project can have, on average, the same energy consumption as a hair dryer and can consume more than a router or an Internet modem. Finally, it was identified that at large scales, these energy consumptions can be significant and attention should be paid to the number of times IC pipelines are run throughout a project development. It can also be observed that the higher the complexity of a test type, the higher its cost in terms of energy, going according to the testing pyramid.
id SCAR_abe77204c56d12c7e4b057b4eb1f8928
oai_identifier_str oai:repositorio.ufscar.br:ufscar/17558
network_acronym_str SCAR
network_name_str Repositório Institucional da UFSCAR
repository_id_str 4322
spelling Vellone, FabricioEndo, Andre Takeshihttp://lattes.cnpq.br/4221336619791961http://lattes.cnpq.br/3743215808709027ede67df0-4c19-47b3-b543-d8ff85e1b5f62023-03-29T13:42:51Z2023-03-29T13:42:51Z2023-03-22VELLONE, Fabricio. Um estudo sobre consumo de energia em aplicações JavaScript: Identificação dos custos energéticos para a etapa de integração continua. 2023. Trabalho de Conclusão de Curso (Graduação em Engenharia Elétrica) – Universidade Federal de São Carlos, São Carlos, 2023. Disponível em: https://repositorio.ufscar.br/handle/ufscar/17558.https://repositorio.ufscar.br/handle/ufscar/17558Given the climate context that the world finds itself in, controlling the energy consumption that humans perform on a daily basis is indispensable for the well-being of the planet and sustainability. For software this is no different. This work aimed to analyze the energy consumption in the Continuous Integration process of JavaScript applications. In particular, each step of the process was studied, identifying how energy consumption is distributed, tracing a relationship between the execution time of the steps and energy consumption, in addition to making parallels between these consumptions in the software world and the energy consumption of everyday life. First the energy consumption capture tool perf was selected. Next, JavaScript projects were selected for analysis following some specific criteria, such as the existence of different tests and CI, as well as standardizing all existing nomenclatures in these projects. Finally, the chosen tool was combined with scripts to obtain the raw data and the analysis was performed using spreadsheets. It was possible to verify that the testing stages were the most costly among the stages evaluated. For the relationship between time and energy consumption, it was observed that the energy consumption tends to be linear with time for direct processing, and the non-direct processing tends to present a logarithmic pattern of behavior. Furthermore, it was seen that a project can have, on average, the same energy consumption as a hair dryer and can consume more than a router or an Internet modem. Finally, it was identified that at large scales, these energy consumptions can be significant and attention should be paid to the number of times IC pipelines are run throughout a project development. It can also be observed that the higher the complexity of a test type, the higher its cost in terms of energy, going according to the testing pyramid.Dado o contexto climático que o mundo se encontra, controlar o consumo de energia que os seres humanos realizam diariamente é indispensável para o bem-estar do planeta e da sustentabilidade. Para o software isso não é diferente. Este trabalho teve como objetivo analisar o consumo de energia no processo de Integração Contínua de aplicações JavaScript. Particularmente, estudou-se cada etapa do processo, identificando como se distribui o consumo de energia, traçando uma relação entre o tempo de execução das etapas e o consumo energético, em adição a realizar paralelos entre estes consumos no mundo do software e os consumos de energia do dia-a-dia das pessoas. Primeiro selecionou-se a ferramenta de captura de consumo energético perf. Em seguida, foram selecionadas de projetos JavaScript para análise seguindo alguns critérios específicos, como a existência de diferentes testes e CI, além de padronizar todas as nomenclaturas existentes nesses projetos. Por fim, combinou-se a ferramenta escolhida, scripts para obter os dados brutos e realizou-se as análises por meio de planilhas. Foi possível constatar que as etapas de testes foram as mais custosas dentre as etapas avaliadas. Para a relação entre o tempo e o consumo de energia, observou-se que os consumos energéticos tendem a serem lineares com o tempo para processamentos diretos e os não diretos tendem a apresentar um padrão logarítmico de comportamento. Ademais, viu-se que um projeto pode ter, em média, o mesmo consumo de energia que um secador de cabelo e pode consumir mais que um roteador ou um modem de Internet. Por fim, foi identificado que em grandes escalas, estes consumos de energia podem ser significantes e se deve ter atenção com a quantidade de vezes que as pipelines de CI são executadas ao longo de um desenvolvimento de projeto. Também pode-se observar que quanto maior a complexidade de um tipo de testes, maior seu custo em termos de energia, indo de acordo com a pirâmide de testes.Não recebi financiamentoporUniversidade Federal de São CarlosCâmpus São CarlosEngenharia Elétrica - EEUFSCarAttribution 3.0 Brazilhttp://creativecommons.org/licenses/by/3.0/br/info:eu-repo/semantics/openAccessGreen ComputingPipelinesJavaScriptNodejsPower consumption in softwareAutomated testingContinuous integrationConsumo de energia em softwareTestes automatizadosIntegração ContínuaENGENHARIAS::ENGENHARIA ELETRICA::MEDIDAS ELETRICAS, MAGNETICAS E ELETRONICAS; INSTRUMENTACAOUm estudo sobre consumo de energia em aplicações JavaScript: Identificação dos custos energéticos para a etapa de integração continuaA study on energy consumption in JavaScript applications: Identifying energy costs for the continuous integration stageinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesis6006004dcaac10-df7e-466b-b225-b7f4efe93d19reponame:Repositório Institucional da UFSCARinstname:Universidade Federal de São Carlos (UFSCAR)instacron:UFSCARCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8913https://repositorio.ufscar.br/bitstream/ufscar/17558/2/license_rdf3185b4de2190c2d366d1d324db01f8b8MD52ORIGINALTCC-Fabricio-Vellone-vFinal.pdfTCC-Fabricio-Vellone-vFinal.pdfTexto do tccapplication/pdf861954https://repositorio.ufscar.br/bitstream/ufscar/17558/1/TCC-Fabricio-Vellone-vFinal.pdf35acc36cc8f417f61660a4dede29738fMD51TEXTTCC-Fabricio-Vellone-vFinal.pdf.txtTCC-Fabricio-Vellone-vFinal.pdf.txtExtracted texttext/plain79442https://repositorio.ufscar.br/bitstream/ufscar/17558/3/TCC-Fabricio-Vellone-vFinal.pdf.txte504c96769f7bb4cf4e66788ac0f181cMD53THUMBNAILTCC-Fabricio-Vellone-vFinal.pdf.jpgTCC-Fabricio-Vellone-vFinal.pdf.jpgIM Thumbnailimage/jpeg6309https://repositorio.ufscar.br/bitstream/ufscar/17558/4/TCC-Fabricio-Vellone-vFinal.pdf.jpg352e51b80d8dd33f3222589b38c5d111MD54ufscar/175582023-09-18 18:32:34.795oai:repositorio.ufscar.br:ufscar/17558Repositório InstitucionalPUBhttps://repositorio.ufscar.br/oai/requestopendoar:43222023-09-18T18:32:34Repositório Institucional da UFSCAR - Universidade Federal de São Carlos (UFSCAR)false
dc.title.por.fl_str_mv Um estudo sobre consumo de energia em aplicações JavaScript: Identificação dos custos energéticos para a etapa de integração continua
dc.title.alternative.eng.fl_str_mv A study on energy consumption in JavaScript applications: Identifying energy costs for the continuous integration stage
title Um estudo sobre consumo de energia em aplicações JavaScript: Identificação dos custos energéticos para a etapa de integração continua
spellingShingle Um estudo sobre consumo de energia em aplicações JavaScript: Identificação dos custos energéticos para a etapa de integração continua
Vellone, Fabricio
Green Computing
Pipelines
JavaScript
Nodejs
Power consumption in software
Automated testing
Continuous integration
Consumo de energia em software
Testes automatizados
Integração Contínua
ENGENHARIAS::ENGENHARIA ELETRICA::MEDIDAS ELETRICAS, MAGNETICAS E ELETRONICAS; INSTRUMENTACAO
title_short Um estudo sobre consumo de energia em aplicações JavaScript: Identificação dos custos energéticos para a etapa de integração continua
title_full Um estudo sobre consumo de energia em aplicações JavaScript: Identificação dos custos energéticos para a etapa de integração continua
title_fullStr Um estudo sobre consumo de energia em aplicações JavaScript: Identificação dos custos energéticos para a etapa de integração continua
title_full_unstemmed Um estudo sobre consumo de energia em aplicações JavaScript: Identificação dos custos energéticos para a etapa de integração continua
title_sort Um estudo sobre consumo de energia em aplicações JavaScript: Identificação dos custos energéticos para a etapa de integração continua
author Vellone, Fabricio
author_facet Vellone, Fabricio
author_role author
dc.contributor.authorlattes.por.fl_str_mv http://lattes.cnpq.br/3743215808709027
dc.contributor.author.fl_str_mv Vellone, Fabricio
dc.contributor.advisor1.fl_str_mv Endo, Andre Takeshi
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/4221336619791961
dc.contributor.authorID.fl_str_mv ede67df0-4c19-47b3-b543-d8ff85e1b5f6
contributor_str_mv Endo, Andre Takeshi
dc.subject.eng.fl_str_mv Green Computing
Pipelines
JavaScript
Nodejs
Power consumption in software
Automated testing
Continuous integration
topic Green Computing
Pipelines
JavaScript
Nodejs
Power consumption in software
Automated testing
Continuous integration
Consumo de energia em software
Testes automatizados
Integração Contínua
ENGENHARIAS::ENGENHARIA ELETRICA::MEDIDAS ELETRICAS, MAGNETICAS E ELETRONICAS; INSTRUMENTACAO
dc.subject.por.fl_str_mv Consumo de energia em software
Testes automatizados
Integração Contínua
dc.subject.cnpq.fl_str_mv ENGENHARIAS::ENGENHARIA ELETRICA::MEDIDAS ELETRICAS, MAGNETICAS E ELETRONICAS; INSTRUMENTACAO
description Given the climate context that the world finds itself in, controlling the energy consumption that humans perform on a daily basis is indispensable for the well-being of the planet and sustainability. For software this is no different. This work aimed to analyze the energy consumption in the Continuous Integration process of JavaScript applications. In particular, each step of the process was studied, identifying how energy consumption is distributed, tracing a relationship between the execution time of the steps and energy consumption, in addition to making parallels between these consumptions in the software world and the energy consumption of everyday life. First the energy consumption capture tool perf was selected. Next, JavaScript projects were selected for analysis following some specific criteria, such as the existence of different tests and CI, as well as standardizing all existing nomenclatures in these projects. Finally, the chosen tool was combined with scripts to obtain the raw data and the analysis was performed using spreadsheets. It was possible to verify that the testing stages were the most costly among the stages evaluated. For the relationship between time and energy consumption, it was observed that the energy consumption tends to be linear with time for direct processing, and the non-direct processing tends to present a logarithmic pattern of behavior. Furthermore, it was seen that a project can have, on average, the same energy consumption as a hair dryer and can consume more than a router or an Internet modem. Finally, it was identified that at large scales, these energy consumptions can be significant and attention should be paid to the number of times IC pipelines are run throughout a project development. It can also be observed that the higher the complexity of a test type, the higher its cost in terms of energy, going according to the testing pyramid.
publishDate 2023
dc.date.accessioned.fl_str_mv 2023-03-29T13:42:51Z
dc.date.available.fl_str_mv 2023-03-29T13:42:51Z
dc.date.issued.fl_str_mv 2023-03-22
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv VELLONE, Fabricio. Um estudo sobre consumo de energia em aplicações JavaScript: Identificação dos custos energéticos para a etapa de integração continua. 2023. Trabalho de Conclusão de Curso (Graduação em Engenharia Elétrica) – Universidade Federal de São Carlos, São Carlos, 2023. Disponível em: https://repositorio.ufscar.br/handle/ufscar/17558.
dc.identifier.uri.fl_str_mv https://repositorio.ufscar.br/handle/ufscar/17558
identifier_str_mv VELLONE, Fabricio. Um estudo sobre consumo de energia em aplicações JavaScript: Identificação dos custos energéticos para a etapa de integração continua. 2023. Trabalho de Conclusão de Curso (Graduação em Engenharia Elétrica) – Universidade Federal de São Carlos, São Carlos, 2023. Disponível em: https://repositorio.ufscar.br/handle/ufscar/17558.
url https://repositorio.ufscar.br/handle/ufscar/17558
dc.language.iso.fl_str_mv por
language por
dc.relation.confidence.fl_str_mv 600
600
dc.relation.authority.fl_str_mv 4dcaac10-df7e-466b-b225-b7f4efe93d19
dc.rights.driver.fl_str_mv Attribution 3.0 Brazil
http://creativecommons.org/licenses/by/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution 3.0 Brazil
http://creativecommons.org/licenses/by/3.0/br/
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de São Carlos
Câmpus São Carlos
Engenharia Elétrica - EE
dc.publisher.initials.fl_str_mv UFSCar
publisher.none.fl_str_mv Universidade Federal de São Carlos
Câmpus São Carlos
Engenharia Elétrica - EE
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFSCAR
instname:Universidade Federal de São Carlos (UFSCAR)
instacron:UFSCAR
instname_str Universidade Federal de São Carlos (UFSCAR)
instacron_str UFSCAR
institution UFSCAR
reponame_str Repositório Institucional da UFSCAR
collection Repositório Institucional da UFSCAR
bitstream.url.fl_str_mv https://repositorio.ufscar.br/bitstream/ufscar/17558/2/license_rdf
https://repositorio.ufscar.br/bitstream/ufscar/17558/1/TCC-Fabricio-Vellone-vFinal.pdf
https://repositorio.ufscar.br/bitstream/ufscar/17558/3/TCC-Fabricio-Vellone-vFinal.pdf.txt
https://repositorio.ufscar.br/bitstream/ufscar/17558/4/TCC-Fabricio-Vellone-vFinal.pdf.jpg
bitstream.checksum.fl_str_mv 3185b4de2190c2d366d1d324db01f8b8
35acc36cc8f417f61660a4dede29738f
e504c96769f7bb4cf4e66788ac0f181c
352e51b80d8dd33f3222589b38c5d111
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFSCAR - Universidade Federal de São Carlos (UFSCAR)
repository.mail.fl_str_mv
_version_ 1813715660690161664