Leonardo Sant Anna Antunes Maciel. Um Estudo sobre Instrumentação da Máquina Virtual de Lua para Análise de Desempenho. Dissertação de Mestrado

Documentos relacionados
Adriano Francisco Branco. Um modelo de programação para RSSF com. Dissertação de Mestrado

Renato Figueiró Maia. Um Framework para Sistemas Baseados em Componentes Distribuídos. Informática DEPARTAMENTO DE INFORMÁTICA

Um Estudo Sobre Middlewares Adaptáveis

Adriano Medeiros dos Santos. Suporte a Componentes Compostos Para o Middleware SCS. Dissertação de Mestrado

Bruno Loureiro Rezende. Um Framework para a Automação de Testes com Linguagens de Especificação Configuráveis DISSERTAÇÃO DE MESTRADO

Bruno Siqueira Silva. Workflows dinâmicos em gerência de projetos ágeis. Dissertação de Mestrado

Um ambiente de suporte para uma linguagem de modelagem de sistemas multi-agentes

Sistema para Consultas sobre Banco de Dados Relacional Baseado em Palavras-Chave

Mauricio Kreczmarsky Guimarães Meinicke. Opacidade 3D na Visualização Volumétrica de Dados Sísmicos

Francisco Eduardo Torres Cursino de Moura. Uma proposta para Rendering Baseado em Imagens em celulares

Controle da Execução e Disponibilização de Dados para Aplicativos sobre Seqüências Biológicas: o Caso BLAST

Matchmaking Uma infraestrutura para alinhamento de esquemas

Avaliação da Licitação de Lotes de Frequência para LTE Utilizando a Teoria de Opções Reais

SQLLOMining: Obtenção de Objetos de Aprendizagem utilizando técnicas de Aprendizado de Máquina

Otávio de Pinho Forin Braga. Uma Arquitetura para Síntese de Imagens Fotorrealistas baseada em Técnicas de Monte Carlo DISSERTAÇÃO DE MESTRADO

Vinci Pegoretti Amorim. Uma Arquitetura Flexível para Replicação de Bases Distribuídas Heterogêneas. Dissertação de Mestrado

Gerenciamento de projetos no âmbito da Economia Criativa Um estudo de caso das Incubadoras Rio Criativo

Geração semi-automática de massas de testes funcionais a partir da composição de casos de uso e tabelas de decisão

UMA IMPLEMENTAÇÃO DO SERVIÇO WMS SOBRE A BIBLIOTECA TERRALIB

Elicitação de requisitos de software através da utilização de questionários

Crime e Poupança: Teoria e Evidências para o Brasil

Iam Vita Jabour. O Impacto de Atributos Estruturais na Identificação de Tabelas e Listas em Documentos HTML. Dissertação de Mestrado

Uma meta-ferramenta de geração de diagramas utilizada na engenharia reversa de sistemas legados.

Avaliação Preliminar dos Movimentos Aéreos no Aeroporto Internacional Antônio Carlos Jobim Galeão

Luzia da Costa Tonon. O Teorema de Cramér-Lundberg via martingais DISSERTAÇÃO DE MESTRADO. Programa de Pós Graduação em Matemática

A importância da dívida cambial no endividamento público brasileiro

Estudo Comparativo de Estratégias de Classificação de Páginas Web

Marcos Borges Pessoa. Geração e execução automática de scripts de teste para aplicações web a partir de casos de uso direcionados por comportamento

Utilização de uma estratégia para identificação de fontes de informação na fase de elicitação

Usando a abordagem MDA no desenvolvimento de sistemas multi-agentes

Integração de Ontologia com Modelagem de Processo: Um Método para Facilitar a Elicitação de Requisitos

Bruno de Figueiredo Melo e Souza. Modelos de fatoração matricial para recomendação de vídeos. Dissertação de Mestrado

Proposta de um sistema de suporte à decisão para programação de navios baseado em otimização: um caso prático

Um Framework de Jogos Sérios para Mercado de Informações com Aplicação em Ética Empresarial

Marcos José Gomes Cristovão

Lucas Euzébio Machado. Jogos Multijogador em Massa DISSERTAÇÃO DE MESTRADO. Informática DEPARTAMENTO DE INFORMÁTICA

Debora Carvalho Capella. Um estudo descritivo do vocativo em linguagem oral para Português L2. Dissertação de Mestrado

Compras de itens não críticos: implementação no nível operacional e práticas em uma empresa de petróleo

Alexandre Rupert Arpini Skyrme. Um Modelo Alternativo para Programação Concorrente em Lua. Dissertação de Mestrado

Gerenciando Conflitos em Reuniões: Uma Estratégia para a Elicitação de Requisitos de Software

Avaliação Probabilística de Reservas de Óleo e Gás Considerando o Efeito da Variação do Preço do Óleo

Finalizadores e Ciclos em Tabelas Fracas

João Paulo de Freitas Araujo. Algoritmos para acelerar a computação de Árvores de corte de Gomory e Hu. Dissertação de Mestrado

Mercados Futuros Agropecuários no Brasil: Análise dos Contratos e da Formação dos Preços Futuros

Remo Mannarino Filho. O método das divisões: a última proposta dialética de Platão. Dissertação de mestrado

Davi Romero de Vasconcelos. Análise de Estratégias Utilizando Verificação Formal de Modelos. Dissertação de Mestrado

Bruno Baère Pederassi Lomba de Araujo. Um estudo sobre adaptatividade dinâmica de dificuldade em jogos. Dissertação de Mestrado

Pontifícia Universidade Católica do Rio de Janeiro

Estudo de Viabilidade da Implementação de Software de Roteamento para Transporte de Funcionários de Refinaria da Petrobras

Análise e Avaliação do Equity Premium Puzzle no Mercado Acionário Brasileiro sob diferentes Contextos Econômicos

Pedro Tiago Barbosa do Couto. Resolução de problemas de transporte rodoviário de cargas utilizando programação inteira DISSERTAÇÃO DE MESTRADO

Ricardo Fukasawa. Resolução de problemas de logística ferroviária utilizando programação inteira DISSERTAÇÃO DE MESTRADO

APLICAÇÃO DE CONCEITOS DE ENGENHARIA DE FATORES HUMANOS: UM ESTUDO DE CASO EM UMA EMPRESA DE OPERAÇÕES LOGÍSTICAS

Política Monetária e Investimento no Brasil

João Clemente A. Quaresma de Moura. O poder na obra de Foucault e as Estratégias do Contemporâneo. Dissertação de Mestrado

Uma abordagem baseada em SPH para animação interativa de águas rasas em jogos

Guilherme de Sousa Neves. Previsão de estoque de peças eletrônicas sobressalentes. Dissertação de Mestrado

MAURICIO LANE ESCOAMENTO DE FLUIDOS NÃO NEWTONIANOS ATRAVÉS DE CANAIS CONVERGENTES-DIVERGENTES DISSERTAÇÃO DE MESTRADO

Comparação de estratégias de construção de poços marítimos incorporando incertezas

Cláudia Assumpção Gonzaga. Paulo Coelho em cena: a construção do escritor pop star. Dissertação de Mestrado

Sérgio Queiroz de Medeiros. Correspondência entre PEGs e Classes de Gramáticas Livres de Contexto. Tese de Doutorado

O Design de Sinalização no Brasil: a introdução de novos conceitos de 1970 a 2000

Márcia Araújo Almeida

OPERADORES LOGÍSTICOS E SEUS CLIENTES: UM ESTUDO EMPÍRICO

Framework para coordenação e mediação de Web Services modelados como Learning Objects para ambientes de aprendizado na Web

Mineração de Dados voltada para Recomendação no Âmbito de Marketing de Relacionamento

Leonardo Lucena Pereira Azevedo da Silveira

Sistema de recomendação de segundo nível para suporte à produção de matérias jornalísticas

DISSERTAÇÃO DE MESTRADO

Geraldo da Silva Rocha Netto. Escalonamento Flexível de Workflows com Restrições Temporais. Dissertação de Mestrado

Thomas de Campos Tsuchida. Modelagem da localização de pólos de venda de derivados de petróleo. Dissertação de Mestrado (Opção Profissional)

Considerações sobre o Afeto em Psicanálise

Regysane Botelho Cutrim Alves. A crítica de traduções na teoria e na prática: o caso da Versão Brasileira. Dissertação de mestrado

Hellen Angélica da Silva Almeida. Grupos de Coxeter hiperbólicos. Dissertação de Mestrado

O Efeito Coorte e o Desenvolvimento das Preferências por Moda Feminina

Laura Gonçalves Carvalho

Lourival Vieira Neto. Lunatik: Scripting de Kernel de Sistema Operacional com Lua. Dissertação de Mestrado

Heidegger e a relação homem-técnica-natureza na crise ambiental contemporânea

Natália Moreira Félix

Memes: Conceito de Conteúdo de Informação Como Alternativa de Pesquisa de Posicionamento de Marca

Uma Proposta de Sistema de Dependência a Distância Usando a Plataforma Moodle

Marcelo de Mattos Bezerra. Interações no Ensino e na Prática do Design e da Arquitetura. Dissertação de Mestrado

Francisco Benjamim Filho. XHITS: Estendendo o Algoritmo HITS para Extração de Tópicos na WWW DISSERTAÇÃO DE MESTRADO

Efeito do erro de apontamento de antenas fixadas em plataformas móveis no desempenho de sistemas de comunicação digital por satélite

SDiff: Uma ferramenta para comparação de documentos com base nas suas estruturas sintáticas

Criação Automática de Visões Materializadas em SGBDs Relacionais

Carlos Roberto da Costa Ferreira. Interpolação Modificada de LSF's. Dissertação de Mestrado

Relação entre Governança Corporativa e Remuneração de Executivos no Brasil

João Coutinho Machado. Um estudo sobre o desenvolvimento orientado a serviços

Variação semântica nas construções adverbiais temporais introduzidas por quando na língua portuguesa

Carla Jardim Dias. Um modelo estocástico para o fluxo de caixa de um plano de previdência de um indivíduo. Dissertação de Mestrado

Previsão da Produção Industrial do Brasil: Uma Aplicação do Modelo de Índice de Difusão Linear

Aposentadoria e o Trade-off entre Renda e Lazer: Implicações para o Valor do Capital Humano de Funcionários Públicos

Os Efeitos da Licença Maternidade sobre Salário e Emprego da Mulher no Brasil

Edney Clemente de Souza. Playboy. A estética do inatingível. Dissertação de Mestrado

Vanessa Ribeiro Ferreira. Mongólia: uma narrativa caótica? Dissertação de Mestrado

Tânia Cristina Soeiro Simões O uso das preposições locais no processo de aquisição formal da língua alemã como segunda língua

Efeitos de Intervenções Esterilizadas do Banco Central do Brasil sobre a Taxa de Câmbio

Transcrição:

Leonardo Sant Anna Antunes Maciel Um Estudo sobre Instrumentação da Máquina Virtual de Lua para Análise de Desempenho Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo Programa de Pós graduação em Informática do Departamento de Informática da PUC Rio Orientador: Prof. Renato Fontoura de Gusmão Cerqueira Rio de Janeiro Setembro de 2008

Leonardo Sant Anna Antunes Maciel Um Estudo sobre Instrumentação da Máquina Virtual de Lua para Análise de Desempenho Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo Programa de Pós graduação em Informática do Departamento de Informática do Centro Técnico Científico da PUC Rio. Aprovada pela Comissão Examinadora abaixo assinada. Prof. Renato Fontoura de Gusmão Cerqueira Orientador Departamento de Informática PUC Rio Prof. Noemi Rodriguez Departamento de Informática PUC Rio Prof. Roberto Ierusalimschy Departamento de Informática PUC Rio Prof. José Eugênio Leal Coordenador Setorial do Centro Técnico Científico PUC Rio Rio de Janeiro, 24 de Setembro de 2008

Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, do autor e do orientador. Leonardo Sant Anna Antunes Maciel Graduou-se em Engenharia de Computação pela PUC Rio em Janeiro de 2006, tendo passado um ano em intercâmbio na Escola Superior de Informática e Matemática Aplicada de Grenoble, França, e contabilizado quase 4 anos de estágio. Ingressou no programa de Mestrado, desenvolvendo junto ao seu orientador uma implementação do Sistema de Eventos de CORBA para o projeto OiL do TecGraf, além de portes de Lua para a plataforma BREW e Windows Mobile. Ainda no Mestrado realizou experimentos com a instrumentação da máquina virtual de Lua, que finalmente resultou neste trabalho. Maciel, Leonardo Sant Anna Antunes Ficha Catalográfica Um Estudo sobre Instrumentação da Máquina Virtual de Lua para Análise de Desempenho / Leonardo Sant Anna Antunes Maciel; orientador: Renato Fontoura de Gusmão Cerqueira. 2009. 91 f. : il. ; 30 cm Dissertação (Mestrado em Informática) - Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, 2008. Inclui bibliografia. 1. Informática Teses. 2. Instrumentação de Máquinas Virtuais. 3. Linguagens Dinâmicas. 4. Lua. I. Cerqueira, Renato Fontoura de Gusmão. II. Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. III. Título. CDD: 004

Agradecimentos Ao meu orientador Professor Renato Cerqueira pela paciência e apoio, principalmente nos momento críticos, próximos à defesa. À Wiz Technologies e mais uma vez ao meu orientador, pela concessão da bolsa, sem a qual não estaria aqui hoje. Ao meu amigo e treinador, Professor Walter Tuche, que me ensinou muito sobre superação. Aos meus pais, irmão e avós e namorada, cujo carinho tem sido fundamental. Aos amigos de todas as horas, por entenderem minha ausência. A todos vocês, muito obrigado!

Resumo Maciel, Leonardo Sant Anna Antunes; Cerqueira, Renato Fontoura de Gusmão. Um Estudo sobre Instrumentação da Máquina Virtual de Lua para Análise de Desempenho. Rio de Janeiro, 2008. 91p. Dissertação de Mestrado Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro. Tem-se observado uma crescente popularidade das linguagens de programação ditas dinâmicas. Hoje uma miríade dessas linguagens são empregadas nas mais diversas áreas, tais como na programação para Internet, desenvolvimento de Jogos, e até mesmo em missões críticas de exploração espacial. Este fenômeno pode ser atribuído em parte às facilidades que essas linguagens oferecem ao programador, como estruturas de dados poderosas e flexíveis, gerenciamento automático de memória e tipagem dinâmica, entre outras. Entretanto, os mesmos mecanismos de abstração, que facilitam a programação nessas linguagens, introduzem também custos muitas vezes não facilmente identificados pelos programadores de aplicações. Provavelmente o melhor exemplo disto é o custo da coleta de lixo, um processo não-determinístico presente em várias dessas linguagens. Por estas e outras razões, há uma grande demanda por desenvolver ferramentas de apoio à análise de desempenho de programas escritos nessas linguagens. O objetivo deste trabalho é estudar técnicas para instrumentação de máquinas virtuais de linguagens dinâmicas. Para realizar este estudo foi implementada uma solução para instrumentação da máquina virtual da linguagem Lua. Através deste estudo, apresentamos algumas técnicas de instrumentação, e descrevemos as decisões de projeto e experiências adquiridas no desenvolvimento da mesma. Além disso, avaliamos o impacto dessa solução no desempenho do programa instrumentado e apresentamos exemplos de uso. Concluímos com uma análise crítica deste trabalho, além de sugestões de trabalhos futuros. Palavras chave Instrumentação de Máquinas Virtuais. Linguagens Dinâmicas. Lua.

Abstract Maciel, Leonardo Sant Anna Antunes; Cerqueira, Renato Fontoura de Gusmão. A Study of Instrumentation of the Lua Virtual Machine for Performance Analysis. Rio de Janeiro, 2008. 91p. MsC Thesis Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro. Recently there has been a significant rise in the popularity of the so called dynamic languages. Today a myriad of such languages can be found on a wide range of applications, from Web programming, through game development, up to critical space missions. This phenomenon is partially due to high-level constructs that they offer to the programmer, such as powerful and flexible data structures, automatic memory management and dynamic typing, to name a few. However, the same abstractions that ease the development with such languages, also introduce costs often difficult to identify by application developers. Garbage collection is probably the best example of such an abstraction. While relieving the programmer from manual memory management, it also introduces a non-deterministic cost. For those reasons there has been an increasing interest in tools to support the process of performance analysis of programs written in such languages. This work aims to study techniques for instrumentation of virtual machines of dynamic languages. To accomplish this, we implemented a solution for the instrumentation of the virtual machine of the Lua language. Throughout this study we present some instrumentation techniques, then describe the design decisions and experience acquired during the development of this solution. Furthermore, we evaluate the performance impact and present some examples of use of the proposed solution. We conclude with a critical review of this work, as well as suggestions for future work. Keywords Instrumentation of Virtual Machines. Dynamic Languages. Lua.

Sumário 1 Introdução 11 1.1 Objetivos e contribuições esperadas 13 1.2 Organização do documento 13 2 Profilers 15 2.1 Coleta de dados 15 2.2 Análise de dados 19 3 Trabalhos relacionados 22 3.1 Linguagem Ruby 23 3.2 Linguagem Python 24 3.3 Linguagem Lua 25 3.4 Linguagem Perl 26 4 Instrumentação da máquina virtual de Lua 29 4.1 Arquitetura 29 4.2 Impacto no desempenho 40 4.3 Validação da ferramenta 42 5 Conclusão 51 A Apêndices 56 A.1 Interface de programação do LuaTrace 56 A.2 Representação de uma mensagem em memória 57 A.3 Código-fonte do script life.lua 61 A.4 Relatório de chamadas de função do script life.lua 63 A.5 Relatório de uso de objetos do script life.lua 67 A.6 Relatório de chamadas de função do canal de eventos do OiL 69 A.7 Relatório de uso de objetos do canal de eventos do OiL 85

Lista de figuras 4.1 Arquitetura do núcleo do LuaTrace 30 4.2 Arquitetura do escritor de mensagens padrão 38 4.3 Arquitetura do arcabouço de análise de dados 42 4.4 Eliminação de ciclos no LuaTrace 43

Lista de tabelas 3.1 Ganchos nativos das linguagens 22 3.2 Características de profilers da linguagem Ruby 24 3.3 Características de profilers da linguagem Python 25 3.4 Características de profilers da linguagem Lua 26 3.5 Características de profilers da linguagem Perl 27 4.1 Características do profiler LuaTrace 29 4.2 Pontos de instrumentação do LuaTrace 31 4.2 Pontos de instrumentação do LuaTrace (continuação) 32 4.3 Benchmark do LuaTrace 41 4.4 Sobrecargas das funções de relógio 41

Falar é completamente fácil, quando se tem palavras em mente que expressem sua opinião... Difícil é expressar por gestos e atitudes, o que realmente queremos dizer. Fácil é julgar pessoas que estão sendo expostas pelas circunstâncias... Difícil é encontrar e refletir sobre os seus próprios erros. Fácil é fazer companhia a alguém, dizer o que ela deseja ouvir... Difícil é ser amigo para todas as horas e dizer a verdade quando for preciso. Fácil é analisar a situação alheia e poder aconselhar sobre a mesma... Difícil é vivenciar esta situação e saber o que fazer. Fácil é demonstrar raiva e impaciência quando algo o deixa irritado... Difícil é expressar o seu amor a alguém que realmente te conhece. Fácil é viver sem ter que se preocupar com o amanhã... Difícil é questionar e tentar melhorar suas atitudes impulsivas e as vezes impetuosas, a cada dia que passa. Fácil é mentir aos quatro ventos o que tentamos camuflar... Difícil é mentir para o nosso coração. Fácil é ver o que queremos enxergar... Difícil é saber que nos iludimos com o que achávamos ter visto. Fácil é ditar regras e, Difícil é segui-las... Carlos Drummond de Andrade, Reverência ao Destino.