[pt] Inchaço de memória e um problema que ocorre quando a memória
consumida por um programa excede a expectativa do programador. Em
muitos casos, o inchaço de memória prejudica o desempenho ou, até
mesmo, interrompe a execução de aplicações. Detectar e consertar inchaços
de memória é uma tarefa difícil para programadores e, portanto, eles
costumam usar ferramentas para identificar e consertar problemas desta
natureza. Nas últimas duas décadas, muitos trabalhos e ferramentas foram
desenvolvidos com o intuito de ajudar programadores a abordar problemas
de inchaço de memória, entre eles perfiladores de memória. Apesar de
perfiladores de memória terem sido muito estudados nos últimos anos,
existe uma lacuna em relação a linguagens de script. Nessa dissertação,
nós estudamos perfiladores de memória para linguagens de script.
Primeiro, nos propomos uma classificação que divide as ferramentas em
manual e automática baseada em como elas são usadas pelos
programadores. Em seguida, após estudar ferramentas disponíveis em três
linguagens de script diferentes, nós experimentamos algumas das técnicas
estudadas ao construir dois perfiladores de memória automáticos para
ajudar programadores Lua a resolver inchaços de memória. Finalmente,
nós avaliamos ambas as ferramentas com relação a facilidade de integração
ao programa, a utilidade dos relatórios para o entendimento de programas
desconhecidos e para a localização de inchaços de memória e ao custo de
desempenho que elas geram. / [en] Memory bloat is a software problem that happens when the memory
consumption of a program exceeds the programmer s expectations. In
many cases, memory bloat hurts performance or even crashes applications.
Detecting and fixing memory bloat problems is a difficult task for
programmers and, thus, they usually need tools to identify and fix these
problems. The past two decades produced an extensive research and many
tools to help programmers tackle memory bloat, including memory
profilers. Although memory profilers have been largely studied in the last
years, there is a gap regarding scripting languages. In this thesis, we study
memory profilers in scripting languages. First, we propose a classification
in which we divide memory profilers in manual and automatic, based on
how the programmer uses the memory profiler. Then, after reviewing
memory profilers available in three different scripting languages, we
experiment some of the studied techniques by implementing two automatic
memory profilers to help Lua programmers deal with memory bloat.
Finally, we evaluate our tools regarding how easy it is to incorporate them
to a program, how useful their reports are to understand an unknown
program and track memory bloats, and how much overhead they impose.
Identifer | oai:union.ndltd.org:puc-rio.br/oai:MAXWELL.puc-rio.br:49000 |
Date | 16 July 2020 |
Creators | PABLO MARTINS MUSA |
Contributors | ROBERTO IERUSALIMSCHY |
Publisher | MAXWELL |
Source Sets | PUC Rio |
Language | English |
Detected Language | Portuguese |
Type | TEXTO |
Page generated in 0.0024 seconds