Otimização para reduzir o tamanho de código-fonte JavaScript
Autor(a) principal: | |
---|---|
Data de Publicação: | 2018 |
Tipo de documento: | Tese |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFRJ |
Texto Completo: | http://hdl.handle.net/11422/13045 |
Resumo: | Esta Tese aborda o problema de otimização de tempo de carga de software, especificamente software escrito na linguagem de programação JavaScript, uma linguagem interpretada, baseada em objetos e amplamente utilizada no desenvolvimento de aplicativos e sistemas para a internet. Estudos experimentais foram projetados para avaliar a hipótese de que técnicas heurísticas já aplicadas com sucesso em linguagens orientadas a objeto poderiam ter resultados positivos na redução do tempo de carga de programas escritos em JavaScript. Para tanto, um ferramental que permitisse observar a aplicação de heurísticas selecionadas em programas JavaScript foi construído e executado em um ambiente de computação de alto desempenho. Os resultados dos estudos preliminares foram utilizados para criar um procedimento de busca que varre o código JavaScript criando variantes do programa que sejam menores e passem em todos os casos de teste do programa original. Aplicamos este procedimento a 19 programas JavaScript, variando de 92 a 15.602 linhas de código, e observamos reduções de 0,2% a 73,8% do código original, bem como uma relação entre a qualidade do conjunto de casos de testes e a capacidade de reduzir o tamanho dos programas. |
id |
UFRJ_a22097fd2f4d4e4e1deb91ffd606792b |
---|---|
oai_identifier_str |
oai:pantheon.ufrj.br:11422/13045 |
network_acronym_str |
UFRJ |
network_name_str |
Repositório Institucional da UFRJ |
repository_id_str |
|
spelling |
Farzat, Fabio de Almeidahttp://lattes.cnpq.br/7541486051032916http://lattes.cnpq.br/6738473152907998Barros, Márcio de Oliveirahttp://lattes.cnpq.br/0821562324429813Vergilio, Silvia ReginaMurta, Leonardo Gresta PalinoPires, Paulo de FigueiredoOliveira, Toacy Cavalcante deTravassos, Guilherme Horta2020-09-20T20:04:46Z2023-11-30T03:01:39Z2018-12http://hdl.handle.net/11422/13045Esta Tese aborda o problema de otimização de tempo de carga de software, especificamente software escrito na linguagem de programação JavaScript, uma linguagem interpretada, baseada em objetos e amplamente utilizada no desenvolvimento de aplicativos e sistemas para a internet. Estudos experimentais foram projetados para avaliar a hipótese de que técnicas heurísticas já aplicadas com sucesso em linguagens orientadas a objeto poderiam ter resultados positivos na redução do tempo de carga de programas escritos em JavaScript. Para tanto, um ferramental que permitisse observar a aplicação de heurísticas selecionadas em programas JavaScript foi construído e executado em um ambiente de computação de alto desempenho. Os resultados dos estudos preliminares foram utilizados para criar um procedimento de busca que varre o código JavaScript criando variantes do programa que sejam menores e passem em todos os casos de teste do programa original. Aplicamos este procedimento a 19 programas JavaScript, variando de 92 a 15.602 linhas de código, e observamos reduções de 0,2% a 73,8% do código original, bem como uma relação entre a qualidade do conjunto de casos de testes e a capacidade de reduzir o tamanho dos programas.JavaScript is one of the most used programming languages for front-end development of Web application. The increase in complexity of front-end features brings concerns about performance, especially the load and execution time of JavaScript code. To reduce the size of JavaScript programs and, therefore, the time required to load and execute these programs in the front-end of Web applications. To characterize the variants of JavaScript programs and use this information to build a search procedure that scans such variants for smaller implementations that pass all test cases. We applied this procedure to 19 JavaScript programs varying from 92 to 15,602 LOC and observed reductions from 0.2% to 73.8% of the original code, as well as a relationship between the quality of a program’s test suite and the ability to reduce its size.Submitted by Moreno Barros (moreno@ct.ufrj.br) on 2020-09-20T20:04:46Z No. of bitstreams: 1 FabioDeAlmeidaFarzat.pdf: 1561434 bytes, checksum: b53999b4c871ebbab549af8db9fd9e86 (MD5)Made available in DSpace on 2020-09-20T20:04:46Z (GMT). No. of bitstreams: 1 FabioDeAlmeidaFarzat.pdf: 1561434 bytes, checksum: b53999b4c871ebbab549af8db9fd9e86 (MD5) Previous issue date: 2018-12porUniversidade Federal do Rio de JaneiroPrograma de Pós-Graduação em Engenharia de Sistemas e ComputaçãoUFRJBrasilInstituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa de EngenhariaCNPQ::ENGENHARIASOtimização de código-fonteEngenharia de software baseada em buscaHeurísticasMelhoramento GenéticoProgramação genéticaOtimização para reduzir o tamanho de código-fonte JavaScriptinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisabertoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRJinstname:Universidade Federal do Rio de Janeiro (UFRJ)instacron:UFRJORIGINALFabioDeAlmeidaFarzat.pdfFabioDeAlmeidaFarzat.pdfapplication/pdf1561434http://pantheon.ufrj.br:80/bitstream/11422/13045/1/FabioDeAlmeidaFarzat.pdfb53999b4c871ebbab549af8db9fd9e86MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-81853http://pantheon.ufrj.br:80/bitstream/11422/13045/2/license.txtdd32849f2bfb22da963c3aac6e26e255MD5211422/130452023-11-30 00:01:39.985oai:pantheon.ufrj.br:11422/13045TElDRU7Dh0EgTsODTy1FWENMVVNJVkEgREUgRElTVFJJQlVJw4fDg08KCkFvIGFzc2luYXIgZSBlbnRyZWdhciBlc3RhIGxpY2Vuw6dhLCB2b2PDqihzKSBvKHMpIGF1dG9yKGVzKSBvdSBwcm9wcmlldMOhcmlvKHMpIGRvcyBkaXJlaXRvcyBhdXRvcmFpcyBjb25jZWRlKG0pIGFvIFJlcG9zaXTDs3JpbyBQYW50aGVvbiBkYSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkbyBSaW8gZGUgSmFuZWlybyAoVUZSSikgbyBkaXJlaXRvIG7Do28gLSBleGNsdXNpdm8gZGUgcmVwcm9kdXppciwgY29udmVydGVyIChjb21vIGRlZmluaWRvIGFiYWl4byksIGUvb3UgZGlzdHJpYnVpciBvIGRvY3VtZW50byBlbnRyZWd1ZSAoaW5jbHVpbmRvIG8gcmVzdW1vKSBlbSB0b2RvIG8gbXVuZG8sIGVtIGZvcm1hdG8gZWxldHLDtG5pY28gZSBlbSBxdWFscXVlciBtZWlvLCBpbmNsdWluZG8sIG1hcyBuw6NvIGxpbWl0YWRvIGEgw6F1ZGlvIGUvb3UgdsOtZGVvLgoKVm9jw6ogY29uY29yZGEgcXVlIGEgVUZSSiBwb2RlLCBzZW0gYWx0ZXJhciBvIGNvbnRlw7pkbywgdHJhZHV6aXIgYSBhcHJlc2VudGHDp8OjbyBkZSBxdWFscXVlciBtZWlvIG91IGZvcm1hdG8gY29tIGEgZmluYWxpZGFkZSBkZSBwcmVzZXJ2YcOnw6NvLgoKVm9jw6ogdGFtYsOpbSBjb25jb3JkYSBxdWUgYSBVRlJKIHBvZGUgbWFudGVyIG1haXMgZGUgdW1hIGPDs3BpYSBkZXNzYSBzdWJtaXNzw6NvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIGUgcHJlc2VydmHDp8OjbyBkaWdpdGFsLgoKRGVjbGFyYSBxdWUgbyBkb2N1bWVudG8gZW50cmVndWUgw6kgc2V1IHRyYWJhbGhvIG9yaWdpbmFsLCBlIHF1ZSB2b2PDqiB0ZW0gbyBkaXJlaXRvIGRlIGNvbmNlZGVyIG9zIGRpcmVpdG9zIGNvbnRpZG9zIG5lc3RhIGxpY2Vuw6dhLiBWb2PDqiB0YW1iw6ltIGRlY2xhcmEgcXVlIGEgc3VhIGFwcmVzZW50YcOnw6NvLCBjb20gbyBtZWxob3IgZGUgc2V1cyBjb25oZWNpbWVudG9zLCBuw6NvIGluZnJpbmdpIGRpcmVpdG9zIGF1dG9yYWlzIGRlIHRlcmNlaXJvcy4KClNlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIGNvbnTDqW0gbWF0ZXJpYWwgZG8gcXVhbCB2b2PDqiBuw6NvIHRlbSBkaXJlaXRvcyBkZSBhdXRvciwgZGVjbGFyYSBxdWUgb2J0ZXZlIGEgcGVybWlzc8OjbyBpcnJlc3RyaXRhIGRvIGRldGVudG9yIGRvcyBkaXJlaXRvcyBhdXRvcmFpcyBlIGNvbmNlZGUgYSBVRlJKIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgZGUgcHJvcHJpZWRhZGUgZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3UgY29udGXDumRvIGRhIHN1Ym1pc3PDo28uCgpTZSBvIGRvY3VtZW50byBlbnRyZWd1ZSDDqSBiYXNlYWRvIGVtIHRyYWJhbGhvIHF1ZSBmb2ksIG91IHRlbSBzaWRvIHBhdHJvY2luYWRvIG91IGFwb2lhZG8gcG9yIHVtYSBhZ8OqbmNpYSBvdSBvdXRybyhzKSBvcmdhbmlzbW8ocykgcXVlIG7Do28gYSBVRlJKLCB2b2PDqiBkZWNsYXJhIHF1ZSBjdW1wcml1IHF1YWxxdWVyIGRpcmVpdG8gZGUgUkVWSVPDg08gb3UgZGUgb3V0cmFzIG9icmlnYcOnw7VlcyByZXF1ZXJpZGFzIHBvciBjb250cmF0byBvdSBhY29yZG8uCgpBIFVGUkogaXLDoSBpZGVudGlmaWNhciBjbGFyYW1lbnRlIG8ocykgc2V1KHMpIG5vbWUocykgY29tbyBhdXRvcihlcykgb3UgcHJvcHJpZXTDoXJpbyhzKSBkYSBzdWJtaXNzw6NvLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIHBhcmEgYWzDqW0gZGFzIHBlcm1pdGlkYXMgcG9yIGVzdGEgbGljZW7Dp2EsIG5vIGF0byBkZSBzdWJtaXNzw6NvLgo=Repositório de PublicaçõesPUBhttp://www.pantheon.ufrj.br/oai/requestopendoar:2023-11-30T03:01:39Repositório Institucional da UFRJ - Universidade Federal do Rio de Janeiro (UFRJ)false |
dc.title.pt_BR.fl_str_mv |
Otimização para reduzir o tamanho de código-fonte JavaScript |
title |
Otimização para reduzir o tamanho de código-fonte JavaScript |
spellingShingle |
Otimização para reduzir o tamanho de código-fonte JavaScript Farzat, Fabio de Almeida CNPQ::ENGENHARIAS Otimização de código-fonte Engenharia de software baseada em busca Heurísticas Melhoramento Genético Programação genética |
title_short |
Otimização para reduzir o tamanho de código-fonte JavaScript |
title_full |
Otimização para reduzir o tamanho de código-fonte JavaScript |
title_fullStr |
Otimização para reduzir o tamanho de código-fonte JavaScript |
title_full_unstemmed |
Otimização para reduzir o tamanho de código-fonte JavaScript |
title_sort |
Otimização para reduzir o tamanho de código-fonte JavaScript |
author |
Farzat, Fabio de Almeida |
author_facet |
Farzat, Fabio de Almeida |
author_role |
author |
dc.contributor.advisorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/7541486051032916 |
dc.contributor.authorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/6738473152907998 |
dc.contributor.advisorCo1.none.fl_str_mv |
Barros, Márcio de Oliveira |
dc.contributor.advisorCo1Lattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/0821562324429813 |
dc.contributor.author.fl_str_mv |
Farzat, Fabio de Almeida |
dc.contributor.referee1.fl_str_mv |
Vergilio, Silvia Regina |
dc.contributor.referee2.fl_str_mv |
Murta, Leonardo Gresta Palino |
dc.contributor.referee3.fl_str_mv |
Pires, Paulo de Figueiredo |
dc.contributor.referee4.fl_str_mv |
Oliveira, Toacy Cavalcante de |
dc.contributor.advisor1.fl_str_mv |
Travassos, Guilherme Horta |
contributor_str_mv |
Vergilio, Silvia Regina Murta, Leonardo Gresta Palino Pires, Paulo de Figueiredo Oliveira, Toacy Cavalcante de Travassos, Guilherme Horta |
dc.subject.cnpq.fl_str_mv |
CNPQ::ENGENHARIAS |
topic |
CNPQ::ENGENHARIAS Otimização de código-fonte Engenharia de software baseada em busca Heurísticas Melhoramento Genético Programação genética |
dc.subject.por.fl_str_mv |
Otimização de código-fonte Engenharia de software baseada em busca Heurísticas Melhoramento Genético Programação genética |
description |
Esta Tese aborda o problema de otimização de tempo de carga de software, especificamente software escrito na linguagem de programação JavaScript, uma linguagem interpretada, baseada em objetos e amplamente utilizada no desenvolvimento de aplicativos e sistemas para a internet. Estudos experimentais foram projetados para avaliar a hipótese de que técnicas heurísticas já aplicadas com sucesso em linguagens orientadas a objeto poderiam ter resultados positivos na redução do tempo de carga de programas escritos em JavaScript. Para tanto, um ferramental que permitisse observar a aplicação de heurísticas selecionadas em programas JavaScript foi construído e executado em um ambiente de computação de alto desempenho. Os resultados dos estudos preliminares foram utilizados para criar um procedimento de busca que varre o código JavaScript criando variantes do programa que sejam menores e passem em todos os casos de teste do programa original. Aplicamos este procedimento a 19 programas JavaScript, variando de 92 a 15.602 linhas de código, e observamos reduções de 0,2% a 73,8% do código original, bem como uma relação entre a qualidade do conjunto de casos de testes e a capacidade de reduzir o tamanho dos programas. |
publishDate |
2018 |
dc.date.issued.fl_str_mv |
2018-12 |
dc.date.accessioned.fl_str_mv |
2020-09-20T20:04:46Z |
dc.date.available.fl_str_mv |
2023-11-30T03:01:39Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/11422/13045 |
url |
http://hdl.handle.net/11422/13045 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Federal do Rio de Janeiro |
dc.publisher.program.fl_str_mv |
Programa de Pós-Graduação em Engenharia de Sistemas e Computação |
dc.publisher.initials.fl_str_mv |
UFRJ |
dc.publisher.country.fl_str_mv |
Brasil |
dc.publisher.department.fl_str_mv |
Instituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa de Engenharia |
publisher.none.fl_str_mv |
Universidade Federal do Rio de Janeiro |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFRJ instname:Universidade Federal do Rio de Janeiro (UFRJ) instacron:UFRJ |
instname_str |
Universidade Federal do Rio de Janeiro (UFRJ) |
instacron_str |
UFRJ |
institution |
UFRJ |
reponame_str |
Repositório Institucional da UFRJ |
collection |
Repositório Institucional da UFRJ |
bitstream.url.fl_str_mv |
http://pantheon.ufrj.br:80/bitstream/11422/13045/1/FabioDeAlmeidaFarzat.pdf http://pantheon.ufrj.br:80/bitstream/11422/13045/2/license.txt |
bitstream.checksum.fl_str_mv |
b53999b4c871ebbab549af8db9fd9e86 dd32849f2bfb22da963c3aac6e26e255 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFRJ - Universidade Federal do Rio de Janeiro (UFRJ) |
repository.mail.fl_str_mv |
|
_version_ |
1784097188176986112 |