• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

Share "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"

Copied!
10
0
0

Texto

(1)

Leonardo Sant’Anna Antunes Maciel

Um Estudo sobre Instrumenta¸

ao da M´

aquina

Virtual de Lua para An´

alise de Desempenho

Disserta¸c˜ao de Mestrado

Disserta¸c˜ao apresentada como requisito parcial para obten¸c˜ao do grau de Mestre pelo Programa de P´os–gradua¸c˜ao em Inform´atica do Departamento de Inform´atica da PUC–Rio

Orientador: Prof. Renato Fontoura de Gusm˜ao Cerqueira

Rio de Janeiro Setembro de 2008

(2)

Leonardo Sant’Anna Antunes Maciel

Um Estudo sobre Instrumenta¸

ao da M´

aquina

Virtual de Lua para An´

alise de Desempenho

Disserta¸c˜ao apresentada como requisito parcial para obten¸c˜ao do grau de Mestre pelo Programa de P´os–gradua¸c˜ao em Inform´atica do Departamento de Inform´atica do Centro T´ecnico Cient´ıfico da PUC–Rio. Aprovada pela Comiss˜ao Examinadora abaixo assi-nada.

Prof. Renato Fontoura de Gusm˜ao Cerqueira

Orientador Departamento de Inform´atica — PUC–Rio

Prof. Noemi Rodriguez Departamento de Inform´atica – PUC–Rio

Prof. Roberto Ierusalimschy Departamento de Inform´atica – PUC–Rio

Prof. Jos´e Eugˆenio Leal

Coordenador Setorial do Centro T´ecnico Cient´ıfico — PUC–Rio

Rio de Janeiro, 24 de Setembro de 2008

(3)

Todos os direitos reservados. ´E proibida a reprodu¸c˜ao total

ou parcial do trabalho sem autoriza¸c˜ao da universidade, do

autor e do orientador.

Leonardo Sant’Anna Antunes Maciel

Graduou-se em Engenharia de Computa¸c˜ao pela PUC–Rio

em Janeiro de 2006, tendo passado um ano em intercˆambio

na Escola Superior de Inform´atica e Matem´atica Aplicada de

Grenoble, Fran¸ca, e contabilizado quase 4 anos de est´agio.

Ingressou no programa de Mestrado, desenvolvendo junto ao

seu orientador uma implementa¸c˜ao do Sistema de Eventos

de CORBA para o projeto OiL do TecGraf, al´em de portes

de Lua para a plataforma BREW e Windows Mobile. Ainda

no Mestrado realizou experimentos com a instrumenta¸c˜ao

da m´aquina virtual de Lua, que finalmente resultou neste

trabalho.

Ficha Catalogr´afica

Maciel, Leonardo Sant’Anna Antunes

Um Estudo sobre Instrumenta¸c˜ao da M´aquina Virtual de Lua para An´alise de Desempenho / Leonardo Sant’Anna Antunes Maciel; orientador: Renato Fontoura de Gusm˜ao Cerqueira. – 2009.

91 f. : il. ; 30 cm

Disserta¸c˜ao (Mestrado em Inform´atica) - Pontif´ıcia Uni-versidade Cat´olica do Rio de Janeiro, Rio de Janeiro, 2008.

Inclui bibliografia.

1. Inform´atica – Teses. 2. Instrumenta¸c˜ao de M´aquinas Virtuais. 3. Linguagens Dinˆamicas. 4. Lua. I. Cerqueira, Re-nato Fontoura de Gusm˜ao. II. Pontif´ıcia Universidade Cat´olica do Rio de Janeiro. Departamento de Inform´atica. III. T´ıtulo.

CDD: 004

(4)

Agradecimentos

Ao meu orientador Professor Renato Cerqueira pela paciˆencia e apoio,

principalmente nos momento cr´ıticos, pr´oximos `a defesa.

`

A Wiz Technologies e mais uma vez ao meu orientador, pela concess˜ao

da bolsa, sem a qual n˜ao estaria aqui hoje.

Ao meu amigo e treinador, Professor Walter Tuche, que me ensinou muito

sobre supera¸c˜ao.

Aos meus pais, irm˜ao e av´os e namorada, cujo carinho tem sido

funda-mental.

Aos amigos de todas as horas, por entenderem minha ausˆencia.

A todos vocˆes, muito obrigado!

(5)

Resumo

Maciel, Leonardo Sant’Anna Antunes; Cerqueira, Renato Fontoura

de Gusm˜ao. Um Estudo sobre Instrumenta¸c˜ao da M´aquina

Virtual de Lua para An´alise de Desempenho. Rio de

Ja-neiro, 2008. 91p. Disserta¸c˜ao de Mestrado — Departamento de

In-form´atica, Pontif´ıcia Universidade Cat´olica do Rio de Janeiro.

Tem-se observado uma crescente popularidade das linguagens de

pro-grama¸c˜ao ditas dinˆamicas. Hoje uma mir´ıade dessas linguagens s˜ao

empre-gadas nas mais diversas ´areas, tais como na programa¸c˜ao para Internet,

desenvolvimento de Jogos, e at´e mesmo em miss˜oes cr´ıticas de explora¸c˜ao

espacial. Este fenˆomeno pode ser atribu´ıdo em parte `as facilidades que essas

linguagens oferecem ao programador, como estruturas de dados poderosas

e flex´ıveis, gerenciamento autom´atico de mem´oria e tipagem dinˆamica,

en-tre outras. Enen-tretanto, os mesmos mecanismos de abstra¸c˜ao, que facilitam

a programa¸c˜ao nessas linguagens, introduzem tamb´em custos muitas vezes

n˜ao facilmente identificados pelos programadores de aplica¸c˜oes.

Provavel-mente o melhor exemplo disto ´e o custo da coleta de lixo, um processo

n˜ao-determin´ıstico presente em v´arias dessas linguagens. Por estas e outras

raz˜oes, h´a uma grande demanda por desenvolver ferramentas de apoio `a

an´alise de desempenho de programas escritos nessas linguagens. O objetivo

deste trabalho ´e estudar t´ecnicas para instrumenta¸c˜ao de m´aquinas virtuais

de linguagens dinˆamicas. Para realizar este estudo foi implementada uma

solu¸c˜ao para instrumenta¸c˜ao da m´aquina virtual da linguagem Lua. Atrav´es

deste estudo, apresentamos algumas t´ecnicas de instrumenta¸c˜ao, e

descreve-mos as decis˜oes de projeto e experiˆencias adquiridas no desenvolvimento da

mesma. Al´em disso, avaliamos o impacto dessa solu¸c˜ao no desempenho do

programa instrumentado e apresentamos exemplos de uso. Conclu´ımos com

uma an´alise cr´ıtica deste trabalho, al´em de sugest˜oes de trabalhos futuros.

Palavras–chave

Instrumenta¸c˜ao de M´aquinas Virtuais. Linguagens Dinˆamicas. Lua.

(6)

Abstract

Maciel, Leonardo Sant’Anna Antunes; Cerqueira, Renato Fontoura

de Gusm˜ao. A Study of Instrumentation of the Lua Virtual

Machine for Performance Analysis. Rio de Janeiro, 2008. 91p.

MsC Thesis — Departamento de Inform´atica, Pontif´ıcia

Universi-dade Cat´olica 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.

(7)

Sum´

ario

1 Introdu¸c˜ao 11

1.1 Objetivos e contribui¸c˜oes esperadas 13

1.2 Organiza¸c˜ao do documento 13 2 Profilers 15 2.1 Coleta de dados 15 2.2 An´alise 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¸c˜ao da m´aquina virtual de Lua 29

4.1 Arquitetura 29

4.2 Impacto no desempenho 40

4.3 Valida¸c˜ao da ferramenta 42

5 Conclus˜ao 51

A Apˆendices 56

A.1 Interface de programa¸c˜ao do LuaTrace 56

A.2 Representa¸c˜ao de uma mensagem em mem´oria 57

A.3 C´odigo-fonte do script “life.lua” 61

A.4 Relat´orio de chamadas de fun¸c˜ao do script “life.lua” 63

A.5 Relat´orio de uso de objetos do script “life.lua” 67

A.6 Relat´orio de chamadas de fun¸c˜ao do canal de eventos do OiL 69

A.7 Relat´orio de uso de objetos do canal de eventos do OiL 85

(8)

Lista de figuras

4.1 Arquitetura do n´ucleo do LuaTrace 30

4.2 Arquitetura do escritor de mensagens padr˜ao 38

4.3 Arquitetura do arcabou¸co de an´alise de dados 42

4.4 Elimina¸c˜ao de ciclos no LuaTrace 43

(9)

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¸c˜ao do LuaTrace 31

4.2 Pontos de instrumenta¸c˜ao do LuaTrace (continua¸c˜ao) 32

4.3 Benchmark do LuaTrace 41

4.4 Sobrecargas das fun¸c˜oes de rel´ogio 41

(10)

Falar ´e completamente f´acil, quando se tem palavras em mente que expressem sua

opini˜ao... Dif´ıcil ´e expressar por gestos e

atitudes, o que realmente queremos dizer.

F´acil ´e julgar pessoas que est˜ao sendo

expos-tas pelas circunstˆancias... Dif´ıcil ´e encontrar

e refletir sobre os seus pr´oprios erros.

F´acil ´e fazer companhia a algu´em, dizer o que

ela deseja ouvir... Dif´ıcil ´e ser amigo para

todas as horas e dizer a verdade quando for preciso.

F´acil ´e analisar a situa¸c˜ao alheia e poder

aconselhar sobre a mesma... Dif´ıcil ´e

viven-ciar esta situa¸c˜ao e saber o que fazer.

F´acil ´e demonstrar raiva e impaciˆencia

quando algo o deixa irritado... Dif´ıcil ´e

expressar o seu amor a algu´em que realmente

te conhece.

F´acil ´e viver sem ter que se preocupar com

o amanh˜a... Dif´ıcil ´e questionar e tentar

melhorar suas atitudes impulsivas e as vezes impetuosas, a cada dia que passa.

F´acil ´e mentir aos quatro ventos o que

tentamos camuflar... Dif´ıcil ´e mentir para o

nosso cora¸c˜ao.

F´acil ´e ver o que queremos enxergar...

Dif´ıcil ´e saber que nos iludimos com o que

ach´avamos ter visto.

F´acil ´e ditar regras e, Dif´ıcil ´e segui-las...

Carlos Drummond de Andrade, Reverˆencia ao Destino.

Referências

Documentos relacionados

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

Raichelis 1997 apresenta cinco categorias que na sua concepção devem orientar a análise de uma esfera pública tal como são os conselhos: a visibilidade social, na qual, as ações e

conducting examination-in-chief and cross-examination respectively, the aim is for counsels to debate (affirm and discredit) the macro-narratives of guilt and innocence. The

Derivaram de ações capazes de interferir no dimensionamento desta unidade, especialmente que atuassem sobre as vazões e qualidades de água a demandar e

O lúdico tem sido utilizado como instrumento educacional desde a pré-história onde o homem primitivo se utilizava de rituais, que muito se assemelham as brincadeiras de

Se pensarmos nesse compromisso de engajamento como fator primordial para o exercício de ativismo pelas narrativas artísticas, a proposta de divisão dos conceitos

Justificativa: Como resultado da realização da pesquisa de Mestrado da aluna foram encontradas inconsistências na informação sobre o uso de Fitoterápicos pelos

Compreendendo- se que o estudo dos eventos do século XX podem ser relevantes e esclarecedores para a compreensão da história e da sociedade de hoje, e levando-se em conta o