ap tecnicasprofile final

46
7/21/2019 AP TecnicasProfile Final http://slidepdf.com/reader/full/ap-tecnicasprofile-final 1/46 Técnicas de Profling Equipe: Rosangela Melo Diego Liberalquino Rosiberto

Upload: rutek

Post on 05-Mar-2016

222 views

Category:

Documents


0 download

DESCRIPTION

tecnicss

TRANSCRIPT

Page 1: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 1/46

Técnicas de Profling

Equipe:RosangelaMeloDiegoLiberalquinoRosiberto

Page 2: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 2/46

Roteiro

• O que é Profling?• Como e onde utilizar?•  Técnicas de Profling

 – Program Counter Sampling – Instrumentação Binária – Simulação

• Comparação entre as Técnicas•  Tracing• erramentas de Profler• Prática•

!e"er#ncias

Page 3: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 3/46

Page 4: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 4/46

O que é profling

• Profling é uma técnica de análisedinâica – $nalisa um programa durante a sua e%ecução& – Considera apenas um estado de todo o espaço

de estados poss'(eis de um programa a cadainter(alo de tempo&

 – !ealiza análise das partes de um processo

durante a sua e%ecução•  Tempo de CP)&• *em+ria e Cac,e&•  T,reads- *onitores e *ute%es.

Page 5: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 5/46

O que é profling

• O que o profler analisa – C,amadas de métodos& – /struturas de Branc,

• 0oops 12,ile- "or- etc3&• /struturas de decisão 1i"4else3&

 – C,amadas ao sistema& – $cesso a mem+ria

• Pil,a&• 5eap.

Page 6: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 6/46

Profling

• )ma "erramenta de P!OI0/ permite aidentifcação de trec,os que são 6astantesolicitados nos c+digos 1B/7/!!$ 8/TO- 9::;3&

• ornece um (isão glo6al do tempo de e%ecuçãoda $plicação 1*$CI/0- 9:<<3&

• = necessário o con,ecimento não apenas do >u%odo programa- mas tam6ém dos trec,os quedemandam mais tempo.

Page 7: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 7/46

O que é profling

• O profler produz estat'sticas so6re oprograma que podem ser analisadas emtempo real.

Page 8: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 8/46

!oo e onde utili"ar#

•$oralente utili"ados para@ Otimização no c+digo&@ /ncontrar mi%es de instruçAes utilizadas&@ /stat'sticas de des(ios e de uso de registradores&

 – *edir quanto tempo- ou "ração do tempo total- osistema passa em um certo estado ou su64rotina.

•!ouente aceita:@ )m programa e%ecutá(el como entrada&@ ecodifcam e analisam as instruçAes do e%ecutá(el.

Page 9: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 9/46

!oo e onde utili"ar#

• %diciona c&digo 1pro6es3 aplicação a sermonitorada. $lguns adicionam o c+digo1pro6es3 durante a compilação ou o6tém

amostras do contador de programa&

• 'dentifca()o e %*ustes@ In"ormaçAes são utilizadas por

programadores para identifcar qual porçãodo programa consome uma grande "ração dotempo total de e%ecução&@ Os programadores podem aDustar seus

c+digos para conseguir uma mel,or

Page 10: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 10/46

Técnicas de Profling

Progra+countersapling'nstruenta()obinária

Siula()o

Page 11: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 11/46

Progra+counter sapling

• Sampling é uma técnica de estat'stica qual umsu6conDunto de elementos da população ée%aminado atra(és de uma seleção randEmica&

Como o sampling é um processo estat'stico emqual as caracter'sticas de uma população sãoin"eridas a partir de uma seleção randEmica-então podemos está suDeito a erros aleat+rios&

$s amostras da e%ecução dos programas sãocoletadas em um f%o inter(alo atra(és deperi+dicas interrupçAes. O inter(alo de confançapode ser calculado.

Page 12: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 12/46

,igura -. Program4couter sampling "unciona1COS*OS-9::;3

Progra+countersapling

Page 13: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 13/46

Progra+counter sapling

E/eploSupon,a que usando uma "erramenta deamostragem que interrompe a e%ecução do

programa a cada Tc 0 -1s. Incluindo o temporequerido para a rotina de interrupção& oprograma e%ecuta em um total de Fs. 8o totalde nGF:: 1F:::H<:3 amostras- apenas <9 (ezes

a su64rotinas ocorreu no momento dasinterrupçAes.Jual é a "ração de tempo total o programa gastae%ecutando a su64rotina ?

Page 14: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 14/46

Progra+counter sapling

Calcular o inter(alo de confança com o n'(elde confança de ;;K.

Podemos estimar com ;;K de confança queem Fs da e%ecução do programa- o tempogasto na e%ecução da su64rotina está entreL< e 9:; milissegundos.

Page 15: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 15/46

!onsidera(2es•   8ecessário um nMmero grande de

amostras&

•   Para o6ter mais amostras por e(entolongo per3odo do tepo ou auentar ata/a de aostra&

•   /m algumas situaçAes pode4se dei%ar oprograma e%ecutando em um longo per'odo-mas em outros casos o programa tem umaduração f%a&

•  $umentar a ta%a da amostra- aumenta 8r.de (ezes que a rotina deinterrupção1ass'ncronas3 é e%ecutada-

Page 16: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 16/46

'nstruenta()o binária

• !ece6e programa como entrada – C+digo onte& –

C+digo o6Deto& – In"ormaçAes de linNagem.

• Sa'da –

Programa e%ecutá(el instrumentado.

Page 17: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 17/46

'nstruenta()o binária

Page 18: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 18/46

'nstruenta()o binária

• $nálise da Instrumentação – Contagem de 6locos& –

ra"o de c,amadas.

Page 19: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 19/46

!ontage de blocos

• )sa como unidade 6ásica um bloco dec&digo• )m trec,o do c+digo e%ecutá(el com um Mnico ponto de

entrada e Mnico ponto de sa'da&

• !ece6e como entrada um e%ecutá(el eproduz• )m e%ecutá(el instrumentado com uma rotina de

análise no in'cio e fm de cada 6loco&• )ma ta6ela com endereços de cada 6loco&• )ma ta6ela com contagens para cada endereço.

Page 20: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 20/46

4ra5o de !6aadas

• Permite coletar estat'sticas mais detal,adasdo >u%o de um programa – Juantos des(ios "oram realizados de um 6loco de

origem para n destinos? – Juantas c,amadas de n 6locos de origem "oram "eitas

para um 6loco destino?

• Constr+i um gra"o de controle de >u%o para oe%ecutá(el instrumentado – Identifca camin,os poss'(eis entre 6locos& – Insere trec,os de instrumentação para cada des(io

encontrado no c+digo 6inário&

Page 21: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 21/46

4ra5o de !6aadas

Page 22: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 22/46

4ra5o de !6aadas

• ifculdades – Saltos indiretos /%ceçAes- longDmp13& – Condition codes;

 – *istura de c+digo e dados& – C+digo Independente de Posição.

Page 23: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 23/46

Siula()o

• Implementa uma máquina (irtual quesimula a arquitetura de um processador&

• Coleta dados da instrumentação de acordocom as instruçAes e%ecutadas eregistradores preenc,idos.

Page 24: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 24/46

!opara()o entre as Técnicas

PRO4R%M+!O7$TERS%MPL'$4

'$STR7ME$T%89O '$;R'%

S'M7L%89O

Sa3da /strutura estat'stica Contagem e%ata Contagem e%ata

O<er6ead !otina de ser(iço deinterrupção

InstruçAes e%tra emcada 6loco

 Tradução einstrumentação decada instrução

Perturba()

o

$leatoriamente

istri6u'da

alta $lta

Repetitibilidade

entro da (arinciaestat'stica

per"eita per"eita

Page 25: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 25/46

Tracing

• Como o profler coleta dados? – !egistra e%ecução de 6locos de c+digo& – Qerifca instruçAes de load e store e%ecutadas no 6loco

e%ecutado& – Qerifca segmentos de dados dentro da pil,a de

e%ecução& – *antém registro dos dados modifcados.

Page 26: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 26/46

,erraentas Profler = M&dulos

*em+ria

Processador

 T,readSistema

Page 27: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 27/46

,erraentas Profler

QTune IntelR&• Code$nalst$*R&

• $Jtime&•

Proelp,i&•  ourUit Va(a&

• Profler&• pProfle&• SamplingProfle

r&• Qalgrind&• >isual>M&• 4pro5.

Page 28: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 28/46

>Tune 'ntel?

• erramenta de análise estat'stica&• !ecol,e amostras em inter(alos regulares

de tempo- determinando qual "unçãoconsome mais recursos da CP) 16aseadono tempo3&

• eterminando qual "unção causa a

utilização mais inefciente do processador16aseado em e(entos3&

• *ede desempen,o sem instrumentação.

Page 29: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 29/46

>Tune 'ntel?

Page 30: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 30/46

>Tune 'ntel?

Page 31: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 31/46

4Pro5 

• /scrita por Va enlason- permite a análiseda per"ormance do algoritmo e e%i6eesses resultados na "orma de gra"o&

• $ análise realizada pelo Pro" permitecon,ecer –

Juantidade de métodos e%istentes noc+digo& – 8Mmero de c,amadas de cada método

ou "unção& – $ porcentagem do tempo gasto para

Page 32: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 32/46

4Pro5 = Passos

• Compilar o programa acrescentando a >agde compilação- atra(és do comando

gcc -pg codigo.c -o nome-exec

• $p+s compilar de(e4se e%ecutar oprograma usando a lin,a de comando – Linux – ./nome-exec (args);

 – Windows – nome-exec.

= gerado um arqui(o com nome de"aultgmon.out  que é interpretado pelo

programa de profle.

Page 33: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 33/46

4Pro5 = Passos

• Para (isualizar a análise gerada pelo Pro"pode4se usar o comando

 – Linux – gprof ./nome-exec (args);

 – Windows – gprof –pq nome-exec.

$utomaticamente o Pro" irá interpretar oarqui(o gmon.out  Duntamente com oe%ecutá(el do programa e irá imprimir na

tela os resultados.

Page 34: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 34/46

4Pro5 

• Ktime @ percentual de tempo gasto&• Cumulati(e seconds @ tempo gasto pela "unção mais tempos das "unçAes

acima da ta6ela&• Sel" seconds @ tempo gasto da "unção&• Calls @ 8r. e c,amadas da "unção&• Sel" msH call @ tempo milisec para c,amar a "unção&•

 Total msHcall @ tempo de c,amada da "unção e descendentes em milisec&• 8ame @ nome da "unção.

Page 35: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 35/46

4Pro5 

Para o6ter outras estat'sticas de(emoscompilar o programa utilizandogcc arqui<o.c +o arqui<o.e/e +5profle+arcs

+5test+co<erage

/ para e%i6ir...

<• gco< arqui<o.c @estat3stica

geralA

9• gco< +5b arqui<o.c @outras

estat3sticasA

Page 36: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 36/46

>isual>M

• erramenta (isual que integra (árias"erramentas da su'te VU. Inclui – *onitoramento de CP)- mem+ria e T,reads& – Profling ,'6rido

• Simulação&• Sampling&• BlocN counting em tempo real&•

Call grap, para snaps,ots de e%ecução.

Page 37: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 37/46

>isual>M

Page 38: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 38/46

>isual>M

fli li ) d

Page 39: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 39/46

Profling B %<alia()o deDesepen6o

• Os proflers au%iliam na a(aliação dedesempen,o trazendo a identifcação depontos a serem mel,orado nos programas

6em como a sugestão de otimização dosprogramas. ei%ando4os com a e%ecuçãomais rápida e em alguns casos commenor taman,o 1COS*OS- 9::;3.

Page 40: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 40/46

Page 41: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 41/46

Prática = >isual>M

)tilizar o QisualQ* para analisar ocomportamento de algoritmos de ordenaçãoimplementados em Va(a.

• )tilizar a6ordagens – Instrumentação 6inária&

 – Program Counter Sampling.

Page 42: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 42/46

E/erc3cio = Problea -

8o grande templo de Bra,ma em Benares- numa 6andeDa demetal so6 a cMpula que marca o centro do mundo- tr#sagul,as de diamante ser(em de pilar a sessenta e quatrodiscos de ouro puro.

Incansa(elmente- os sacerdotes trans"erem os discos- um decada (ez- de agul,a para agul,a- o6edecendo sempre leiimutá(el de Bra,ma

“Nenhum disco se poder so!repor a um menor  W

8o in'cio do mundo todos os sessenta e quatro discos de ouro-"oram dispostos na primeira das tr#s agul,as- constituindo a

 Torre de Bra,ma. 8o momento em que o menor dos discos "orcolocado de tal modo que se "orme uma (ez mais a Torre deBra,ma numa agul,a di"erente da inicial- tanto a torre como o

templo serão trans"ormados em p+ e o ri6om6ar de um tro(ãoassinalará o fm do mundo.

Page 43: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 43/46

E/erc3cio = Problea -

Obser<a()o)ma solução Dá esta implementada- mas "oi identifcado quetem um 6ai%o desempen,o.

Pede+se!eescre(er o programa que calcula o mo(imento de nG9Xdiscos de acordo com as regras esta6elecidas. /m seguida-analisar as duas soluçAes com a "erramenta de profleQisualQ* e discorrer so6re os gan,os perce6idos.

Page 44: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 44/46

E/erc3cio = Problea C

)m ,omem tem um par de coel,os em um am6ienteinteiramente "ec,ado. eseDamos sa6er quantos pares decoel,os podem ser gerados deste par em Y9 meses 1Z anos3-se de um modo natural a cada m#s ocorre a produção de um

par e um par começa a produzir coel,os quando completadois meses de (ida.Especifca(2es:<. 8o primeiro m#s nasce somente um casal&9. Casais amadurecem se%ualmente ap+s o segundo m#s de

(ida&L. 8ão ,á pro6lemas genéticos no cruzamento consangu'neo&Z. Todos os meses- cada casal dá luz a um no(o casal&Y. Os coel,os nunca morrem&

Obser<a()o )ma solução Dá esta implementada- mas "oi

Page 45: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 45/46

E/erc3cio = Problea C

Pede+se!eescre(er o programa que calcula a quantidade de pares decoel,o que podem ser gerados em Y9 meses 1Z anos3 deacordo com as regras esta6elecidas. /m seguida- analisar as

duas soluçAes com a "erramenta de profle QisualQ* ediscorrer so6re os gan,os perce6idos.

Page 46: AP TecnicasProfile Final

7/21/2019 AP TecnicasProfile Final

http://slidepdf.com/reader/full/ap-tecnicasprofile-final 46/46

Re5erncias

C5$Q/S- 0. Dicas para 5acilitar a depura()o de prograas. instituto de computação-)ni(ersidade estadual de campinas- 9:<:.

)![/S- il(an *. SO$!/S- $ndré C. B. IO77$- \illiam . Otii"ando o Desepen6o doSiR% C.1 usandoa Técnica de Profler para 'dentifca()o de 4argalos. 9::F.

8) pro". 'pleentation o5 Profling. ispon'(el em ],ttpHHsource2are.orgH6inutilsHdocsHgpro"HSampling4/rror.,tml^. $cesso em :Y out. 9:<9.

Intel QTune $mplifer / 9:<<. ispon'(el em ],ttpHHso"t2are.intel.comHen4usHarticlesHintel4(tune4amplifer4%eH^. $cesso em <X out. 9:<9.

 V$I8- !aD. %rt o5 !oputer SFstes Per5orance analFsis Tec6niques ,or E/perientalDesign Measureents Siulation %nd Modeling. Vo,n \ile _ Sons- Inc. ISB8:ZX<Y:LL`L-<;;<.

*$CI/0- P. !. Material da disciplina a<alia()o de Desepen6o- 9:<<.

8/TO- 5eleno Pontes Bezerra. 7SO D% ,ERR%ME$T% DE PRO,'LE 4PRO,. 9::;.

PO!UO0$B- 7oltan. *I5$0IC7$- Vozse". P$T$UI- 8or6ert. SIPOS- $dam. %nalFsis o5 ProlingTec6niques 5or !GG Teplate Metaprogras. 9:<:. ispon'(el em ],ttpHHaszt.in".elte.,uHgsdHsHciNNeNHproflingHprofle.pd" ^. $cesso em <`. out. 9:<9.